function $_global_init() { { if ("undefined" == typeof g_all_modules) { g_all_modules = {}; } g_all_modules["init.js"] = { "version": { "rmj": 16, "rmm": 0, "rup": 10386, "rpr": 20011 } }; } if (-1 != navigator.userAgent.indexOf('ProfilerMark') && 'function' == typeof msWriteProfilerMark) { spWriteProfilerMark = function(m) { window.msWriteProfilerMark(m); }; } if (typeof spWriteProfilerMark == 'function') spWriteProfilerMark("perfMarkBegin_" + "init.js"); if (typeof OffSwitch == 'undefined') { OffSwitch = { "__namespace": true }; OffSwitch_module_def(); } if (typeof RuntimeErrors == 'undefined') { RuntimeErrors = { "__namespace": true }; RuntimeErrors_module_def(); } if (typeof Verify == 'undefined') { Verify = { "__namespace": true }; Verify_module_def(); } if (typeof Define == 'undefined') { Define = { "__namespace": true }; Define_module_def(); } if (typeof BrowserDetection == 'undefined') { BrowserDetection = { "__namespace": true }; BrowserDetection_module_def(); } (function() { BrowserisOld.prototype = { firefox: undefined, firefox36up: undefined, firefox3up: undefined, firefox4up: undefined, ie: undefined, ie55up: undefined, ie5up: undefined, ie7down: undefined, ie8down: undefined, ie8standard: undefined, ie8standardUp: undefined, ie9down: undefined, ie9standardUp: undefined, ipad: undefined, windowsphone: undefined, chrome: undefined, chrome7up: undefined, chrome8up: undefined, chrome9up: undefined, chrome81up: undefined, iever: undefined, mac: undefined, major: undefined, msTouch: undefined, isTouch: undefined, nav: undefined, nav6: undefined, nav6up: undefined, nav7up: undefined, osver: undefined, safari: undefined, safari125up: undefined, safari3up: undefined, verIEFull: undefined, w3c: undefined, webKit: undefined, win: undefined, win8AppHost: undefined, win32: undefined, win64bit: undefined, winnt: undefined, armProcessor: undefined }; Browseris.prototype = BrowserisOld.prototype; Browseris.prototype.ie10standardUp = undefined; Browseris.prototype.ie11 = undefined; Browseris.prototype.ie11up = undefined; Browseris.prototype.msEdge = undefined; function Browseris() { var agt = navigator.userAgent.toLowerCase(); var navIdx; this.osver = 1.0; if (Boolean(agt)) { var stOSVer = agt.substring(agt.indexOf("windows ") + 11); this.osver = parseFloat(stOSVer); } this.major = parseInt(navigator.appVersion); this.msEdge = agt.indexOf("edge/") != -1; var msieIdx = agt.indexOf("msie"); var tridentIdx = agt.indexOf("trident"); this.ie = msieIdx != -1 || tridentIdx != -1; var stIEVer = "0"; if (this.ie) { if (msieIdx != -1) { stIEVer = agt.substring(msieIdx + 5); } else { var rvIdx = agt.indexOf("rv:"); if (rvIdx != -1) { stIEVer = agt.substring(rvIdx + 3); } } } this.iever = parseInt(stIEVer); this.verIEFull = parseFloat(stIEVer); this.ie4up = this.ie && this.major >= 4; this.ie5up = this.ie && this.iever >= 5; this.ie55up = this.ie && this.verIEFull >= 5.5; this.ie6up = this.ie && this.iever >= 6; this.ie7down = this.ie && this.iever <= 7; this.ie8down = this.ie && this.iever <= 8; this.ie9down = this.ie && this.iever <= 9; this.ie7up = this.ie && this.iever >= 7; this.ie8standard = this.ie && Boolean(document.documentMode) && document.documentMode == 8; this.ie8standardUp = this.ie && (Boolean(document.documentMode) && document.documentMode >= 8); this.ie9standardUp = this.ie && (Boolean(document.documentMode) && document.documentMode >= 9); this.ie10standardUp = this.ie && (Boolean(document.documentMode) && document.documentMode >= 10); this.ie11 = this.ie && Boolean(document.documentMode) && document.documentMode == 11; this.ie11up = this.ie && (Boolean(document.documentMode) && document.documentMode >= 11); this.nav = agt.indexOf('mozilla') != -1 && agt.indexOf('spoofer') == -1 && agt.indexOf('compatible') == -1 && !this.ie; this.nav6 = this.nav && this.major == 5; this.nav6up = this.nav && this.major >= 5; this.nav7up = false; if (this.nav6up) { navIdx = agt.indexOf("netscape/"); if (navIdx >= 0) this.nav7up = parseInt(agt.substring(navIdx + 9)) >= 7; } this.winnt = agt.indexOf("winnt") != -1 || agt.indexOf("windows nt") != -1; this.win32 = this.major >= 4 && navigator.platform == "Win32" || agt.indexOf("win32") != -1 || agt.indexOf("32bit") != -1; this.win64bit = agt.indexOf("win64") != -1; this.win = this.winnt || this.win32 || this.win64bit; this.safari = agt.indexOf("webkit") != -1 && !this.ie && !this.msEdge; this.safari125up = false; this.safari3up = false; if (this.safari && this.major >= 5) { navIdx = agt.indexOf("webkit/"); if (navIdx >= 0) this.safari125up = parseInt(agt.substring(navIdx + 7)) >= 125; var verIdx = agt.indexOf("version/"); if (verIdx >= 0) this.safari3up = parseInt(agt.substring(verIdx + 8)) >= 3; } this.firefox = this.nav && agt.indexOf("firefox") != -1; this.firefox3up = false; this.firefox36up = false; this.firefox4up = false; if (this.firefox && this.major >= 5) { var ffVerIdx = agt.indexOf("firefox/"); if (ffVerIdx >= 0) { var firefoxVStr = agt.substring(ffVerIdx + 8); this.firefox3up = parseInt(firefoxVStr) >= 3; this.firefox36up = parseFloat(firefoxVStr) >= 3.6; this.firefox4up = parseInt(firefoxVStr) >= 4; } } this.chrome = this.nav && agt.indexOf("chrome") != -1 && !this.ie && !this.msEdge; this.chrome7up = false; this.chrome8up = false; this.chrome9up = false; this.chrome81up = false; if (this.chrome && this.major >= 5) { var chmVerIdx = agt.indexOf("chrome/"); if (chmVerIdx >= 0) { var chmVerStr = agt.substring(chmVerIdx + 7); var chmVerInt = parseInt(chmVerStr); this.chrome7up = chmVerInt >= 7; this.chrome8up = chmVerInt >= 8; this.chrome9up = chmVerInt >= 9; this.chrome81up = chmVerInt >= 81; } } this.ipad = agt.indexOf("ipad") != -1; this.windowsphone = agt.indexOf("windows phone") != -1; this.aol = this.ie && agt.indexOf(" aol ") != -1; this.mac = agt.indexOf("mac") != -1; this.w3c = this.nav6up; this.webKit = agt.indexOf("webkit") != -1 && !this.ie && !this.msEdge; this.win8AppHost = agt.indexOf("msapphost") != -1; this.msTouch = typeof navigator.msMaxTouchPoints != "undefined" && navigator.msMaxTouchPoints > 0; this.isTouch = this.msTouch || "ontouchstart" in document.documentElement; this.armProcessor = agt.indexOf("arm") != -1; } function BrowserisOld() { var agt = navigator.userAgent.toLowerCase(); var navIdx; this.osver = 1.0; if (Boolean(agt)) { var stOSVer = agt.substring(agt.indexOf("windows ") + 11); this.osver = parseFloat(stOSVer); } this.major = parseInt(navigator.appVersion); this.nav = agt.indexOf('mozilla') != -1 && (agt.indexOf('spoofer') == -1 && agt.indexOf('compatible') == -1); this.nav6 = this.nav && this.major == 5; this.nav6up = this.nav && this.major >= 5; this.nav7up = false; if (this.nav6up) { navIdx = agt.indexOf("netscape/"); if (navIdx >= 0) this.nav7up = parseInt(agt.substring(navIdx + 9)) >= 7; } this.ie = agt.indexOf("msie") != -1; this.ipad = agt.indexOf("ipad") != -1; this.windowsphone = agt.indexOf("windows phone") != -1; this.aol = this.ie && agt.indexOf(" aol ") != -1; if (this.ie) { var stIEVer = agt.substring(agt.indexOf("msie ") + 5); this.iever = parseInt(stIEVer); this.verIEFull = parseFloat(stIEVer); } else this.iever = 0; this.ie4up = this.ie && this.major >= 4; this.ie5up = this.ie && this.iever >= 5; this.ie55up = this.ie && this.verIEFull >= 5.5; this.ie6up = this.ie && this.iever >= 6; this.ie7down = this.ie && this.iever <= 7; this.ie8down = this.ie && this.iever <= 8; this.ie9down = this.ie && this.iever <= 9; this.ie7up = this.ie && this.iever >= 7; this.ie8standard = this.ie && Boolean(document.documentMode) && document.documentMode == 8; this.ie8standardUp = this.ie && Boolean(document.documentMode) && document.documentMode >= 8; this.ie9standardUp = this.ie && Boolean(document.documentMode) && document.documentMode >= 9; this.ie10standardUp = this.ie && Boolean(document.documentMode) && document.documentMode >= 10; this.winnt = agt.indexOf("winnt") != -1 || agt.indexOf("windows nt") != -1; this.win32 = this.major >= 4 && navigator.platform == "Win32" || agt.indexOf("win32") != -1 || agt.indexOf("32bit") != -1; this.win64bit = agt.indexOf("win64") != -1; this.win = this.winnt || this.win32 || this.win64bit; this.mac = agt.indexOf("mac") != -1; this.w3c = this.nav6up; this.webKit = agt.indexOf("webkit") != -1; this.safari = agt.indexOf("webkit") != -1; this.safari125up = false; this.safari3up = false; if (this.safari && this.major >= 5) { navIdx = agt.indexOf("webkit/"); if (navIdx >= 0) this.safari125up = parseInt(agt.substring(navIdx + 7)) >= 125; var verIdx = agt.indexOf("version/"); if (verIdx >= 0) this.safari3up = parseInt(agt.substring(verIdx + 8)) >= 3; } this.firefox = this.nav && agt.indexOf("firefox") != -1; this.firefox3up = false; this.firefox36up = false; this.firefox4up = false; if (this.firefox && this.major >= 5) { var ffVerIdx = agt.indexOf("firefox/"); if (ffVerIdx >= 0) { var firefoxVStr = agt.substring(ffVerIdx + 8); this.firefox3up = parseInt(firefoxVStr) >= 3; this.firefox36up = parseFloat(firefoxVStr) >= 3.6; this.firefox4up = parseInt(firefoxVStr) >= 4; } } this.win8AppHost = agt.indexOf("msapphost") != -1; this.chrome = this.nav && agt.indexOf("chrome") != -1; this.chrome7up = false; this.chrome8up = false; this.chrome9up = false; this.chrome81up = false; if (this.chrome && this.major >= 5) { var chmVerIdx = agt.indexOf("chrome/"); if (chmVerIdx >= 0) { var chmVerStr = agt.substring(chmVerIdx + 7); var chmVerInt = parseInt(chmVerStr); this.chrome7up = chmVerInt >= 7; this.chrome8up = chmVerInt >= 8; this.chrome9up = chmVerInt >= 9; this.chrome81up = chmVerInt >= 81; } } this.msTouch = typeof navigator.msMaxTouchPoints != "undefined" && navigator.msMaxTouchPoints > 0; this.isTouch = this.msTouch || "ontouchstart" in document.documentElement; this.armProcessor = agt.indexOf("arm") != -1; } if (typeof _browserisFlight !== "undefined") { BrowserDetection.userAgent = new Browseris(); } else { BrowserDetection.userAgent = new BrowserisOld(); } })(); browseris = BrowserDetection.userAgent; bis = BrowserDetection.userAgent; if (typeof BrowserStorage == 'undefined') { BrowserStorage = { "__namespace": true }; BrowserStorage_module_def(); } if (typeof CSSUtil == 'undefined') { CSSUtil = { "__namespace": true }; CSSUtil_module_def(); } ; pxToNum = CSSUtil.pxToNum; GetWidthFromPxString = CSSUtil.pxToFloat; GetCurrentEltStyle = CSSUtil.getCurrentStyle; GetCurrentEltStyleByNames = CSSUtil.getCurrentEltStyleByNames; GetOpacity = CSSUtil.getOpacity; SetOpacity = CSSUtil.setOpacity; HasCssClass = CSSUtil.HasClass; AddCssClassToElement = CSSUtil.AddClass; RemoveCssClassFromElement = CSSUtil.RemoveClass; getCurrentEltStyleByNames = CSSUtil.getCurrentEltStyleByNames; if (typeof DOM == 'undefined') { DOM = { "__namespace": true }; DOM_module_def(); } fRightToLeft = DOM.rightToLeft; cancelDefault = DOM.cancelDefault; AbsLeft = DOM.AbsLeft; AbsTop = DOM.AbsTop; CancelEvent = DOM.CancelEvent; GetElementsByName = DOM.GetElementsByName; GetEventCoords = DOM.GetEventCoords; GetEventSrcElement = DOM.GetEventSrcElement; GetInnerText = DOM.GetInnerText; PreventDefaultNavigation = DOM.PreventDefaultNavigation; SetEvent = DOM.SetEvent; if (typeof Encoding == 'undefined') { Encoding = { "__namespace": true }; Encoding_module_def(); } encodeScriptQuote = Encoding.EncodeScriptQuote; STSHtmlEncode = Encoding.HtmlEncode; STSHtmlEncodeEx = Encoding.HtmlEncodeEx; STSHtmlDecode = Encoding.HtmlDecode; StAttrQuote = Encoding.AttrQuote; STSScriptEncode = Encoding.ScriptEncode; STSScriptEncodeWithQuote = Encoding.ScriptEncodeWithQuote; CanonicalizeUrlEncodingCase = Encoding.CanonicalizeUrlEncodingCase; EncodePath = Encoding.EncodePath; if (typeof ExpFlighting == 'undefined') { ExpFlighting = { "__namespace": true }; ExpFlighting_module_def(); } if (typeof IE8Support == 'undefined') { IE8Support = { "__namespace": true }; IE8Support_module_def(); } if (typeof RequestUtil == 'undefined') { RequestUtil = { "__namespace": true }; RequestUtil_module_def(); } if (typeof StringUtil == 'undefined') { StringUtil = { "__namespace": true }; StringUtil_module_def(); } StBuildParam = StringUtil.BuildParam; if (typeof TypeUtil == 'undefined') { TypeUtil = { "__namespace": true }; TypeUtil_module_def(); } IsArray = TypeUtil.IsArray; IsNullOrUndefined = TypeUtil.IsNullOrUndefined; ObjectUtil = { "__namespace": true }; ObjectUtil_module_def(); URI = function(uriString, options) { var that = this; var URI_POUND = "#"; var URI_COLON = ":"; var URI_FORWARDSLASH = "/"; var URI_DOUBLE_FORWARDSLASHES = "//"; var URI_QUESTIONMARK = "?"; var URI_SEMICOLON = ";"; var URI_AMPERSAND = "&"; var URI_AT = "@"; var URI_EQUAL = "="; var URI_DELIMITERS = ";/?:@&=$,"; var URI_AUTHORITY_TERMINATORS = "/?"; var m_queryCaseInsensitive = false; if (typeof options !== "undefined" && typeof options.queryCaseInsensitive === 'boolean') { m_queryCaseInsensitive = options.queryCaseInsensitive; } var m_disableEncodingDecodingForLegacyCode = false; if (typeof options !== "undefined" && typeof options.disableEncodingDecodingForLegacyCode === 'boolean') { m_disableEncodingDecodingForLegacyCode = options.disableEncodingDecodingForLegacyCode; } var m_pathCaseInsensitive = false; if (typeof options !== "undefined" && typeof options.pathCaseInsensitive === 'boolean') { m_pathCaseInsensitive = options.pathCaseInsensitive; } var m_scheme = ""; var m_user = ""; var m_host = ""; var m_port = ""; var m_path = ""; var m_pathEncoded = ""; var m_parameters = ""; var m_query = {}; var m_fragment = ""; this.getScheme = function() { return m_scheme; }; this.setScheme = function(scheme) { m_scheme = decodeURIComponentIfNecessary(scheme); }; this.getAuthority = function() { return getAuthority(false); }; this.setAuthority = function(authority) { parseAuthority(authority); }; this.getUser = function() { return m_user; }; this.getHost = function() { return m_host; }; this.getPort = function() { return m_port; }; this.getPath = function(trimTrailingSlash) { var retPath = m_path; if (typeof trimTrailingSlash === 'boolean' && trimTrailingSlash) { if (retPath !== null && retPath.lastIndexOf(URI_FORWARDSLASH) === retPath.length - 1) { retPath = retPath.slice(0, -1); } } return retPath; }; this.setPath = function(path) { if (path.indexOf(URI_FORWARDSLASH) !== 0) { path = URI_FORWARDSLASH + path; } parsePath(path); }; this.getPathSegments = function() { if (m_path === null) { return []; } var ret = m_path.split(URI_FORWARDSLASH); if (ret.length > 0) { if (ret[0] === "") { ret.shift(); } else if (ret[ret.length - 1] === "") { ret.pop(); } } return ret; }; this.getLastPathSegment = function(includeParameters) { var pathSegments = that.getPathSegments(); if (pathSegments.length === 0) { return ""; } else { var retPath = pathSegments[pathSegments.length - 1]; if (typeof includeParameters !== 'boolean' || !includeParameters) { var paramBeginPos = retPath.indexOf(URI_SEMICOLON); if (paramBeginPos >= 0) { retPath = retPath.substring(0, paramBeginPos); } } return retPath; } }; this.getParameters = function() { return m_parameters; }; this.getQuery = function() { return serializeQuery(m_query); }; this.setQuery = function(query) { var queryObject = deserializeQuery(query); that.setQueryFromObject(queryObject); }; this.getQueryAsObject = function() { return m_query; }; this.setQueryFromObject = function(queryObj) { m_query = {}; for (var queryKey in queryObj) { if (queryObj.hasOwnProperty(queryKey)) { that.setQueryParameter(queryKey, queryObj[queryKey]); } } }; this.getQueryParameter = function(queryKey) { var ret = null; var query = that.getQueryAsObject(); if (m_queryCaseInsensitive) { for (var key in query) { if (m_query.hasOwnProperty(key) && key.toLowerCase() === queryKey.toLowerCase()) { ret = query[key]; } } } else { ret = query[queryKey]; } if (typeof ret !== 'undefined') { return ret; } else { return null; } }; this.setQueryParameter = function(queryKey, queryValue) { var queryKeyDecoded = decodeURIComponentIfNecessary(queryKey); var queryValueDecoded = decodeURIComponentIfNecessary(queryValue); m_query[queryKeyDecoded] = queryValueDecoded; }; this.removeQueryParameter = function(queryKey) { var queryKeyDecoded = decodeURIComponentIfNecessary(queryKey); delete m_query[queryKeyDecoded]; }; this.getFragment = function() { return m_fragment; }; this.setFragment = function(fragment) { if (fragment.indexOf(URI_POUND) === 0) { fragment = fragment.substring(1); } m_fragment = decodeURIComponentIfNecessary(fragment); }; var isStringEqualInsensitive = function(a, b) { if (a != null && b != null) { return a.toLowerCase() === b.toLowerCase(); } else { return a === b; } }; var isStringEqual = function(a, b) { return a === b; }; this.equals = function(uri) { return m_scheme.toLowerCase() === (uri.getScheme()).toLowerCase() && m_user === uri.getUser() && m_host.toLowerCase() === (uri.getHost()).toLowerCase() && m_port === uri.getPort() && (m_pathCaseInsensitive ? isStringEqualInsensitive : isStringEqual)(that.getPath(true), uri.getPath(true)) && m_parameters === uri.getParameters() && (m_queryCaseInsensitive ? isStringEqualInsensitive : isStringEqual)(that.getQuery(), uri.getQuery()) && m_fragment === uri.getFragment(); }; this.equivalent = function(uri) { return isStringEqualInsensitive(m_scheme, uri.getScheme()) && isStringEqualInsensitive(m_user, uri.getUser()) && isStringEqualInsensitive(m_host, uri.getHost()) && isStringEqualInsensitive(m_port, uri.getPort()) && isStringEqualInsensitive(that.getPath(true), uri.getPath(true)) && isStringEqualInsensitive(m_parameters, uri.getParameters()) && ObjectUtil.deepCompare(that.getQueryAsObject(), uri.getQueryAsObject(), DecodeCompare) && isStringEqualInsensitive(m_fragment, uri.getFragment()); function DecodeCompare(l, r) { var ll = URI.decodeURIComponent(l); var rr = URI.decodeURIComponent(r); return ll === rr; } }; this.getString = function(outputOptions) { return getStringInternal(true, outputOptions); }; this.getDecodedStringForDisplay = function() { return getStringInternal(false); }; this.getStringWithoutQueryAndFragment = function() { return getStringWithoutQueryAndFragmentInternal(true); }; var getStringInternal = function(encoded, outputOptions) { var ret = getStringWithoutQueryAndFragmentInternal(encoded, outputOptions); var query = serializeQuery(m_query, encoded); if (query !== "") { ret += URI_QUESTIONMARK + query; } if (m_fragment !== "") { ret += URI_POUND + (encoded ? encodeURIComponentIfNecessary(m_fragment) : m_fragment); } return ret; }; var getStringWithoutQueryAndFragmentInternal = function(encoded, outputOptions) { var ret = ""; if (m_scheme !== "") { ret += (encoded ? encodeURIComponentIfNecessary(m_scheme) : m_scheme) + URI_COLON; } var authority = getAuthority(encoded, outputOptions); if (authority !== "") { ret += URI_DOUBLE_FORWARDSLASHES + authority; } if (m_pathEncoded !== "") { ret += encoded ? m_pathEncoded : m_path; } return ret; }; var normalizeQueryKey = function(queryKey) { var key = queryKey; if (m_queryCaseInsensitive) { key = key.toLowerCase(); } return key; }; var deserializeQuery = function(queryStr) { var queryObj = {}; if (queryStr.indexOf(URI_QUESTIONMARK) === 0) { queryStr = queryStr.substring(1); } var queryParts = queryStr.split(/[;&]+/); for (var queryIdx = 0; queryIdx < queryParts.length; queryIdx++) { var queryPart = queryParts[queryIdx]; var queryPartSegments = queryPart.split(URI_EQUAL); if (queryPartSegments.length > 0) { var queryKey = queryPartSegments[0]; if (queryKey.length > 0) { var queryValue = ""; if (queryPartSegments.length == 2) { queryValue = queryPartSegments[1]; } queryObj[queryKey] = queryValue; } } } return queryObj; }; var serializeQuery = function(queryObj, encoded) { encoded = typeof encoded === "undefined" ? false : encoded; var queryStr = ""; for (var queryKey in queryObj) { if (queryObj.hasOwnProperty(queryKey)) { var key = queryKey; var value = queryObj[queryKey]; if (encoded) { key = encodeURIComponentIfNecessary(key); value = encodeURIComponentIfNecessary(value); } if (value === null || value === "") { queryStr += key + URI_EQUAL + URI_AMPERSAND; } else { queryStr += key + URI_EQUAL + value + URI_AMPERSAND; } } } if (queryStr !== "") { queryStr = queryStr.slice(0, -1); } return queryStr; }; var parseURI = function() { var remainingString = uriString; var fragmentBeginPos = remainingString.indexOf(URI_POUND); if (fragmentBeginPos >= 0) { var fragment = remainingString.substring(fragmentBeginPos + 1); that.setFragment(fragment); remainingString = remainingString.substring(0, fragmentBeginPos); } var schemeEndPos = findOneOf(remainingString, URI_DELIMITERS); if (schemeEndPos >= 0) { var firstColonPos = remainingString.indexOf(URI_COLON); if (firstColonPos >= 0 && firstColonPos === schemeEndPos) { m_scheme = remainingString.substring(0, schemeEndPos); remainingString = remainingString.substring(schemeEndPos + 1); } } else { parsePath(remainingString); return; } var authority = ""; var doubleSlashPos = remainingString.indexOf(URI_DOUBLE_FORWARDSLASHES); if (doubleSlashPos >= 0 && doubleSlashPos === 0) { remainingString = remainingString.substring(2); var nothingElseLeft; var authorityEndPos = findOneOf(remainingString, URI_AUTHORITY_TERMINATORS); if (authorityEndPos >= 0) { authority = remainingString.substring(0, authorityEndPos); remainingString = remainingString.substring(authorityEndPos); nothingElseLeft = false; } else { authority = remainingString; nothingElseLeft = true; } parseAuthority(authority); if (nothingElseLeft) { return; } } var queryBeginPos = remainingString.indexOf(URI_QUESTIONMARK); if (queryBeginPos >= 0) { that.setQuery(remainingString.substring(queryBeginPos + 1)); remainingString = remainingString.substring(0, queryBeginPos); } parsePath(remainingString); }; var parseAuthority = function(authority) { m_host = authority; var userNameEndPos = authority.lastIndexOf(URI_AT); if (userNameEndPos >= 0) { m_host = m_host.substring(userNameEndPos + 1); } var hostPortSeparatorPos = m_host.indexOf(URI_COLON); if (userNameEndPos < 0 && hostPortSeparatorPos < 0) { return; } var authorityComponents = authority; if (userNameEndPos < 0) { m_host = authorityComponents; } else { m_user = authorityComponents.substring(0, userNameEndPos); m_host = authorityComponents.substring(userNameEndPos + 1); } if (hostPortSeparatorPos >= 0) { m_port = m_host.substring(hostPortSeparatorPos + 1); m_host = m_host.substring(0, hostPortSeparatorPos); } m_user = decodeURIComponentIfNecessary(m_user); m_host = decodeURIComponentIfNecessary(m_host); }; var parsePath = function(remainingString) { var paramBeginPos = remainingString.indexOf(URI_SEMICOLON); if (paramBeginPos >= 0) { m_parameters = decodeURIComponentIfNecessary(remainingString.substring(paramBeginPos + 1)); } m_path = decodeURIComponentIfNecessary(remainingString); var encodedPathSegments = remainingString.split(URI_FORWARDSLASH); for (var i = 0; i < encodedPathSegments.length; ++i) { var segment = encodedPathSegments[i]; var segmentAndParameters = segment.split(URI_SEMICOLON); var decodedSegment = decodeURIComponentIfNecessary(segmentAndParameters[0]); encodedPathSegments[i] = encodeURIComponentIfNecessary(decodedSegment); for (var j = 1; j < segmentAndParameters.length; ++j) { var decodedParameter = decodeURIComponentIfNecessary(segmentAndParameters[j]); encodedPathSegments[i] += URI_SEMICOLON + encodeURIComponentIfNecessary(decodedParameter); } } m_pathEncoded = encodedPathSegments.join(URI_FORWARDSLASH); }; var findOneOf = function(str, searchValues) { for (var strIdx = 0; strIdx < str.length; strIdx++) { var c = str[strIdx]; for (var delimIdx = 0; delimIdx < searchValues.length; delimIdx++) { if (c === searchValues[delimIdx]) { return strIdx; } } } return -1; }; var getUserEncodedIfNecessary = function() { var user; if (m_disableEncodingDecodingForLegacyCode) { user = m_user; } else { user = encodeURIComponentIfNecessary(m_user); user = user.replace("%3A", ":"); } return user; }; var getAuthority = function(encoded, outputOptions) { var doNotPercentEncodeHost = false; if (typeof outputOptions !== "undefined" && typeof outputOptions.doNotPercentEncodeHost === 'boolean') { doNotPercentEncodeHost = outputOptions.doNotPercentEncodeHost; } var authority = ""; var user; var host; var port; if (encoded) { user = getUserEncodedIfNecessary(); if (doNotPercentEncodeHost) { host = m_host; } else { host = encodeURIComponentIfNecessary(m_host); } port = encodeURIComponentIfNecessary(m_port); } else { user = m_user; host = m_host; port = m_port; } if (user !== "") { authority = user + URI_AT; } if (m_host !== "") { authority += host; } if (m_port !== "") { authority += URI_COLON + port; } return authority; }; var encodeURIComponentIfNecessary = function(component) { return m_disableEncodingDecodingForLegacyCode ? component : encodeURIComponent(component); }; var decodeURIComponentIfNecessary = function(component) { return m_disableEncodingDecodingForLegacyCode ? component : URI.decodeURIComponent(component); }; parseURI(); }; (function() { var g_rgdwchMinEncoded = [0x00000000, 0x00000080, 0x00000800, 0x00010000, 0x00200000, 0x04000000, 0x80000000]; function Vutf8ToUnicode(rgBytes) { var ix = 0; var strResult = ""; var dwch, wch, uch; var nTrailBytes, nTrailBytesOrig; while (ix < rgBytes.length) { if (rgBytes[ix] <= 0x007f) { strResult += String.fromCharCode(rgBytes[ix++]); } else { uch = rgBytes[ix++]; nTrailBytes = Boolean(uch & 0x20) ? Boolean(uch & 0x10) ? 3 : 2 : 1; nTrailBytesOrig = nTrailBytes; dwch = uch & 0xff >>> 2 + nTrailBytes; while (Boolean(nTrailBytes) && ix < rgBytes.length) { --nTrailBytes; uch = rgBytes[ix++]; if (uch == 0) { return strResult; } if ((uch & 0xC0) != 0x80) { strResult += '?'; break; } dwch = dwch << 6 | uch & 0x003f; } if (Boolean(nTrailBytes)) { strResult += '?'; break; } if (dwch < g_rgdwchMinEncoded[nTrailBytesOrig]) { strResult += '?'; break; } else if (dwch <= 0xffff) { strResult += String.fromCharCode(dwch); } else if (dwch <= 0x10ffff) { dwch -= 0x10000; strResult += String.fromCharCode(0xD800 | dwch >>> 10); strResult += String.fromCharCode(0xDC00 | dwch & 0x003FF); } else { strResult += '?'; } } } return strResult; } function unescapeProperlyInternal(str) { if (str == null) return "null"; var ix = 0, ixEntity = 0; var strResult = ""; var rgUTF8Bytes = []; var ixUTF8Bytes = 0; var hexString, hexCode; while (ix < str.length) { if (str.charAt(ix) == '%') { if (str.charAt(++ix) == 'u') { hexString = ""; for (ixEntity = 0; ixEntity < 4 && ix < str.length; ++ixEntity) { hexString += str.charAt(++ix); } while (hexString.length < 4) { hexString += '0'; } hexCode = parseInt(hexString, 16); if (isNaN(hexCode)) { strResult += '?'; } else { strResult += String.fromCharCode(hexCode); } } else { hexString = ""; for (ixEntity = 0; ixEntity < 2 && ix < str.length; ++ixEntity) { hexString += str.charAt(ix++); } while (hexString.length < 2) { hexString += '0'; } hexCode = parseInt(hexString, 16); if (isNaN(hexCode)) { if (Boolean(ixUTF8Bytes)) { strResult += Vutf8ToUnicode(rgUTF8Bytes); ixUTF8Bytes = 0; rgUTF8Bytes.length = ixUTF8Bytes; } strResult += '?'; } else { rgUTF8Bytes[ixUTF8Bytes++] = hexCode; } } } else { if (Boolean(ixUTF8Bytes)) { strResult += Vutf8ToUnicode(rgUTF8Bytes); ixUTF8Bytes = 0; rgUTF8Bytes.length = ixUTF8Bytes; } strResult += str.charAt(ix++); } } if (Boolean(ixUTF8Bytes)) { strResult += Vutf8ToUnicode(rgUTF8Bytes); ixUTF8Bytes = 0; rgUTF8Bytes.length = ixUTF8Bytes; } return strResult; } function URI_unescapeProperly(str) { var strResult = null; try { strResult = decodeURIComponent(str); } catch (e) { strResult = unescapeProperlyInternal(str); } return strResult; } function URI_GetAbsoluteUrl(url) { var dummyAnchor = document.createElement('a'); dummyAnchor.href = url; var retVal = dummyAnchor.href; dummyAnchor = null; return retVal; } ; function URI_RemoveQueryParameterFromUrl(stURL, stParameterName) { var startArg = stURL.indexOf("?"); var startFragment = stURL.indexOf("#"); if (-1 == startArg) return stURL; if (-1 == startFragment) startFragment = stURL.length; if (startFragment <= startArg) return stURL; var stUrlArgs = stURL.substr(startArg, startFragment - startArg); var re = new RegExp("[&?]" + stParameterName + "=[^&]*", ""); stUrlArgs = stUrlArgs.replace(re, ""); if (stUrlArgs.length > 0 && "&" == stUrlArgs[0]) { stUrlArgs = "?" + stUrlArgs.substr(1); } return stURL.substr(0, startArg) + stUrlArgs + stURL.substr(startFragment); } function URI_RemoveUrlKeyValue(keyName, url) { var re = new RegExp(keyName + "=[^&]*&"); url = url.replace(re, ""); re = new RegExp(keyName + "=[^&]*"); url = url.replace(re, ""); return url; } function URI_RemoveParametersFromUrl(url) { var paramsBeginPos = url.indexOf('?'); if (paramsBeginPos == -1) return url; else return url.substr(0, paramsBeginPos); } function URI_StURLSetVar2(stURL, stVar, stValue) { var stNewSet = stVar + "=" + stValue; var ichQ = stURL.indexOf("?"); var ichH = stURL.indexOf("#"); if (ichQ != -1) { var ich = stURL.indexOf("?" + stVar + "=", ichQ); if (ich == -1) { ich = stURL.indexOf("&" + stVar + "=", ichQ); if (ich != -1) stNewSet = "&" + stNewSet; } else { stNewSet = "?" + stNewSet; } if (ich != -1) { var re = new RegExp("[&?]" + stVar + "=[^&#]*", ""); stURL = stURL.replace(re, stNewSet); } else { if (ichH == -1) stURL = stURL + "&" + stNewSet; else stURL = stURL.substr(0, ichH) + "&" + stNewSet + stURL.substr(ichH); } } else { if (ichH == -1) stURL = stURL + "?" + stNewSet; else stURL = stURL.substr(0, ichH) + "?" + stNewSet + stURL.substr(ichH); } return stURL; } function URI_CompleteDecode(strIn) { if (typeof strIn == 'undefined' || strIn == null) return strIn; var strOut = strIn; var dStr = URI_unescapeProperly(strOut); while (strOut != dStr) { strOut = dStr; dStr = URI_unescapeProperly(strOut); } return strOut; } function URI_RestructureFilterUrl(strDocUrl, filterNo) { var j = filterNo + 1; var filterArray = strDocUrl.match(new RegExp("FilterField" + String(j) + "=[^&]*")); var isMultipleFilter = false; if (!Boolean(filterArray)) { filterArray = strDocUrl.match(new RegExp("FilterFields" + String(j) + "=[^&]*")); isMultipleFilter = filterArray != null; } for (var i = filterNo; filterArray != null; i++) { var strNew = isMultipleFilter ? "FilterFields" + String(i) : "FilterField" + String(i); var strOld = isMultipleFilter ? "FilterFields" + String(j) : "FilterField" + String(j); strDocUrl = strDocUrl.replace(strOld, strNew); strNew = isMultipleFilter ? "FilterValues" + String(i) : "FilterValue" + String(i); strOld = isMultipleFilter ? "FilterValues" + String(j) : "FilterValue" + String(j); strDocUrl = strDocUrl.replace(strOld, strNew); strNew = "FilterOp" + String(i); strOld = "FilterOp" + String(j); strDocUrl = strDocUrl.replace(strOld, strNew); strNew = "FilterLookupId" + String(i); strOld = "FilterLookupId" + String(j); strDocUrl = strDocUrl.replace(strOld, strNew); strNew = "FilterData" + String(i); strOld = "FilterData" + String(j); strDocUrl = strDocUrl.replace(strOld, strNew); j++; filterArray = strDocUrl.match(new RegExp("FilterField" + String(j) + "=[^&]*")); if (!Boolean(filterArray)) filterArray = strDocUrl.match(new RegExp("FilterFields" + String(j) + "=[^&]*")); } return strDocUrl; } function URI_ParseMultiColumnValue(fieldValue, delimiter, bIncludeEmpty) { var strSubColumn; var subColumnValues = []; if (delimiter == null) delimiter = ';#'; var lead = delimiter.charCodeAt(0); var trail = delimiter.charCodeAt(1); if (fieldValue == null || fieldValue.length == 0) return subColumnValues; var strLead = delimiter.charAt(0); var strLeadLead = strLead + strLead; var escaped = new RegExp(strLeadLead, "g"); var unescaped = delimiter.charAt(0); var startLocal = 0; if (fieldValue.substr(0, 2) == delimiter) { if (Boolean(bIncludeEmpty)) subColumnValues.push(''); startLocal = 2; } var end = startLocal; var bContainEscapedCharacters = false; var totalLength = fieldValue.length; while (end < totalLength) { var index = fieldValue.indexOf(strLead, end); if (index >= 0) { end = index; end++; if (fieldValue.charCodeAt(end) == trail) { if (end - 1 > startLocal) { strSubColumn = fieldValue.substr(startLocal, end - startLocal - 1); if (bContainEscapedCharacters) strSubColumn = strSubColumn.replace(escaped, unescaped); subColumnValues.push(strSubColumn); bContainEscapedCharacters = false; } else { subColumnValues.push(''); } end++; startLocal = end; continue; } else if (fieldValue.charCodeAt(end) == lead) { end++; bContainEscapedCharacters = true; continue; } else { throw "ArgumentException"; } } else { end = totalLength; } } if (end > startLocal) { strSubColumn = fieldValue.substr(startLocal, end - startLocal); if (bContainEscapedCharacters) strSubColumn = strSubColumn.replace(escaped, unescaped); subColumnValues.push(strSubColumn); } else if (Boolean(bIncludeEmpty)) subColumnValues.push(''); return subColumnValues; } function URI_ConvertMultiColumnValueToString(subColumnValues, delimiter, bAddLeadingTailingDelimiter) { if (delimiter == null) delimiter = ";#"; if (bAddLeadingTailingDelimiter == null) bAddLeadingTailingDelimiter = true; var strLead = delimiter.charAt(0); var strLeadLead = strLead + strLead; var escaped = new RegExp(delimiter.charAt(0), "g"); var bHasValue = false; var sb = ''; for (var i = 0; i < subColumnValues.length; i++) { var strSubColumn = subColumnValues[i]; if (strSubColumn != null && strSubColumn.length > 0) strSubColumn = strSubColumn.replace(escaped, strLeadLead); if (strSubColumn != null && strSubColumn.length > 0) bHasValue = true; if (bAddLeadingTailingDelimiter || i != 0) sb += delimiter; sb += strSubColumn; } if (bHasValue) { if (bAddLeadingTailingDelimiter) { sb += delimiter; } return sb; } else return ''; } URI.decodeURIComponent = URI_unescapeProperly; URI.getAbsolute = URI_GetAbsoluteUrl; URI.removeKeyValue = URI_RemoveUrlKeyValue; URI.removeParameters = URI_RemoveParametersFromUrl; URI.removeQueryParameter = URI_RemoveQueryParameterFromUrl; URI.stURLSetVar2 = URI_StURLSetVar2; URI.completeDecode = URI_CompleteDecode; URI.restructureFilterUrl = URI_RestructureFilterUrl; URI.parseMultiColumnValue = URI_ParseMultiColumnValue; URI.convertMultiColumnValueToString = URI_ConvertMultiColumnValueToString; })(); unescapeProperly = URI.decodeURIComponent; GetAbsoluteUrl = URI.getAbsolute; RemoveParametersFromUrl = URI.removeParameters; RemoveQueryParameterFromUrl = URI.removeQueryParameter; RemoveUrlKeyValue = URI.removeKeyValue; StURLSetVar2 = URI.stURLSetVar2; ParseMultiColumnValue = URI.parseMultiColumnValue; ConvertMultiColumnValueToString = URI.convertMultiColumnValueToString; CompleteDecode = URI.completeDecode; if (typeof URI_Encoding == 'undefined') { URI_Encoding = { "__namespace": true }; URI_Encoding_module_def(); } escapeUrlForCallback = URI_Encoding.escapeUrlForCallback; escapeProperly = URI_Encoding.encodeURIComponent; escapeProperlyCore = URI_Encoding.encodeURIComponent; escapeProperlyCoreCore = URI_Encoding.encodeURIComponent; PageContextInfo_InitializePrototype(); if (typeof Nav == 'undefined') { Nav = { "__namespace": true }; Nav_module_def(); } ajaxNavigate = Nav.ajaxNavigate; STSNavigate = Nav.navigate; GetUrlKeyValue = Nav.getUrlKeyValue; STSPageUrlValidation = function(url) { return Nav.pageUrlValidation(url, Strings.STS.L_InvalidPageUrl_Text); }; PageUrlValidation = function(url) { return Nav.pageUrlValidation(url, Strings.STS.L_InvalidPageUrl_Text); }; AjaxNavigate$isMDSURL = Nav.isMDSUrl; isPortalTemplatePage = Nav.isPortalTemplatePage; GoToHistoryLink = Nav.goToHistoryLink; GetGotoLinkUrl = Nav.getGoToLinkUrl; GoToLink = Nav.goToLink; GoToLinkOrDialogNewWindow = Nav.goToLinkOrDialogNewWindow; GoToDiscussion = Nav.goToDiscussion; GetSource = Nav.getSource; RemoveMDSQueryParametersFromUrl = Nav.removeMDSQueryParametersFromUrl; AjaxNavigate$_GetWindowLocationNoHash = Nav.getWindowLocationNoHash; AjaxNavigate$WantsNewTab = Nav.wantsNewTab; AjaxNavigate$parseHash = Nav.parseHash; AjaxNavigate$_UrlFromHashBag = Nav.urlFromHashBag; AjaxNavigate$_getAjaxLocationWindow = Nav.getAjaxLocationWindow; IsSTSPageUrlValid = Nav.isPageUrlValid; AjaxNavigate$OnClickHook = Nav.onClickHook; AjaxNavigate$convertRegularURLtoMDSURL = Nav.convertRegularURLtoMDSURL; AjaxNavigate$convertMDSURLtoRegularURL = Nav.ajaxNavigate.convertMDSURLtoRegularURL; if (typeof ProfileCache == 'undefined') { ProfileCache = { "__namespace": true }; ProfileCache_module_def(); } if (typeof ListModule == 'undefined') { ListModule = { "__namespace": true }; ListModule_module_def(); } BasePermissions = ListModule.BasePermissions; ContextInfo = ListModule.Context; CTXTYPE_EDITMENU = ListModule.Context.Type.EditMenu; CTXTYPE_VIEWSELECTOR = ListModule.Context.Type.ViewSelector; if (typeof List_Util == 'undefined') { List_Util = { "__namespace": true }; List_Util_module_def(); } ctxInitItemState = ListModule.Util.ctxInitItemState; ClearSelectedItemsDict = ListModule.Util.clearSelectedItemsDict; CreateItemPropertiesTitleUrl = ListModule.Util.createItemPropertiesTitleUrl; GetAttributeFromItemTable = ListModule.Util.getAttributeFromItemTable; GetSelectedItemsDict = ListModule.Util.getSelectedItemsDict; RemoveOnlyPagingArgs = ListModule.Util.removeOnlyPagingArgs; RemovePagingArgs = ListModule.Util.removePagingArgs; ShowAttachmentRows = ListModule.Util.showAttachmentRows; CanUploadFile = ListModule.Util.canUploadFile; addWPQtoId = ListModule.Util.addWPQtoId; isDefinedAndNotNullOrEmpty = ListModule.Util.isDefinedAndNotNullOrEmpty; HasEditPermission = ListModule.Util.hasEditPermission; getHostUrl = ListModule.Util.getHostUrl; ReconcileQstringFilters = ListModule.Util.reconcileQstringFilters; QstringStruct = ListModule.Util.Qstring; if (typeof SuiteNavCommon == 'undefined') { SuiteNavCommon = { "__namespace": true }; SuiteNavCommon_module_def(); } if (typeof OnePageUtil == 'undefined') { OnePageUtil = { "__namespace": true }; OnePageUtil_module_def(); } if (Flighting == null) { Flighting = {}; Flighting.ExpFeatures = []; } Flighting.VariantConfiguration = {}; Flighting.VariantConfiguration.IsExpFeatureClientEnabled = function(id) { var elem = Math.floor(id / 32); var mask; if (!(window["OffSwitch"] == null || OffSwitch.IsActive("AF5A380E-20E0-4096-BA87-2C4CDFB4DBDF"))) { var expFeatures = Flighting.ExpFeatures; var pageContextInfo = window['_spPageContextInfo']; if (expFeatures.length === 0 && pageContextInfo != null && pageContextInfo.ExpFeatures != null) { expFeatures = _spPageContextInfo.ExpFeatures; } if (elem < 0 || elem >= expFeatures.length) { return false; } mask = 1 << id % 32; return (expFeatures[elem] & mask) != 0; } else { if (elem < 0 || elem >= Flighting.ExpFeatures.length) { return false; } mask = 1 << id % 32; return (Flighting.ExpFeatures[elem] & mask) != 0; } }; String.prototype.trim = function() { return (this.replace(/^\s\s*/, '')).replace(/\s\s*$/, ''); }; currentCtx = null; itemTable = null; if ('undefined' == typeof g_supportFiles) g_supportFiles = new Array(0); if (!(window["OffSwitch"] == null || OffSwitch.IsActive("79D8320F-D4AA-45D1-A83F-9B7AF522EE5C"))) { OnePageUtil.overrideEventListenerFunctions(window); OnePageUtil.overrideEventListenerFunctions(document); var timerManager = OnePageUtil.GetTimerManager(); timerManager.overrideTimer(); } if (!Boolean(ULS)) ULS = new ULSObject; ULSObject.prototype = { bucket: undefined, request: undefined, Correlation: undefined, OnReceiveBucketParameters: undefined, WebServiceNS: undefined, file: undefined, line: undefined, callStack: undefined, clientInfo: undefined, enable: undefined }; if (typeof window.onerror != 'undefined' && window.onerror != ULSOnError) { ULS.OriginalOnError = window.onerror; window.onerror = ULSOnError; } if (!Boolean(ULSCat)) ULSCat = {}; ULSCat.msoulscat_WSS_General = 'WSS'; ULSCat.msoulscat_WSS_DeltaManager = 'DeltaManager'; ULSCat.msoulscat_WSS_Inplview = 'Inplview'; ULSCat.msoulscat_WSS_JsGrid = 'JsGrid'; ULSCat.msoulscat_WSS_MediaPlayer = 'MediaPlayer'; ULSCat.msoulscat_WSS_SPGantt = 'SPGantt'; ULS.AssertJS = function(category, condition, message) { if (condition == false) { var formattedMessage = "[Category: " + category + "] [Assert: " + message + "]"; ULSSendExceptionImpl(formattedMessage, window.location.href, 0, ULS.AssertJS.caller); } }; ULS.SendErrorMessageJS = function(category, message) { var formattedMessage = "[Category: " + category + "] [Error: " + message + "]"; ULSSendExceptionImpl(formattedMessage, window.location.href, 0, ULS.SendErrorMessageJS.caller); }; ULS.SendExceptionJS = function(category, exception) { var formattedMessage; if (exception != null) { var exmessage = exception.message; var exname = exception.name; if (typeof exmessage != "undefined" && typeof exname != "undefined") { formattedMessage = "[Category: " + category + "] [Exception Name: " + exname + ", Exception Message: " + exmessage + "]"; } else { formattedMessage = "[Category: " + category + "] [Exception: " + exception.toString() + "]"; } } else { formattedMessage = "[Category: " + category + "] [Exception: Null Exception]"; } ULSSendExceptionImpl(formattedMessage, window.location.href, 0, ULS.SendExceptionJS.caller); }; if (typeof Sys != "undefined" && Boolean(Sys) && typeof Sys.Application != "undefined" && Boolean(Sys.Application) && typeof Sys.Application.notifyScriptLoaded == "function") { Sys.Application.notifyScriptLoaded(); } if (typeof NotifyScriptLoadedAndExecuteWaitingJobs == "function") { NotifyScriptLoadedAndExecuteWaitingJobs("owsbrows.js"); } if (typeof spWriteProfilerMark == 'function') spWriteProfilerMark("perfMarkEnd_" + "init.js"); g_cde = {}; ; ; LegalUrlChars = [false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, true, false, false, true, false, true, true, true, true, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, true, false, true, false, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false]; poundIndex = 35; percentIndex = 37; if (typeof Sys != "undefined" && Boolean(Sys) && Boolean(Sys.Application)) { Sys.Application.notifyScriptLoaded(); } if (typeof NotifyScriptLoadedAndExecuteWaitingJobs == "function") { NotifyScriptLoadedAndExecuteWaitingJobs("commonvalidation.js"); } recycleBinEnabled = 0; cascadeDeleteWarningMessage = ""; bIsFileDialogView = false; g_ViewIdToViewCounterMap = []; g_ctxDict = []; bIsFileDialogView = false; g_ViewIdToViewCounterMap = []; g_ctxDict = []; browserUpdatedWithServerRedirectedUrl = false; g_objProjectTaskLaunch = null; g_ssImporterObj = null; g_fSSImporter = false; if (typeof Date.now === 'undefined' || Date.now === null) { Date.now = function() { return Number(new Date()); }; } JSRequest = { QueryString: null, FileName: null, PathName: null, EnsureSetup: function() { if (JSRequest.QueryString != null) return; JSRequest.QueryString = []; var queryString = (ajaxNavigate.get_search()).substring(1); var pairs = queryString.split("&"); var p; for (var i = 0; i < pairs.length; i++) { var pair = pairs[i]; p = pair.indexOf("="); if (p > -1) { var key = pair.substring(0, p); var value = pair.substring(p + 1); JSRequest.QueryString[key] = value; } } var path = JSRequest.PathName = window.location.pathname; p = path.lastIndexOf("/"); if (p > -1) { JSRequest.FileName = path.substring(p + 1); } else { JSRequest.PageName = path; } } }; ExpGroupWPListName = "WSS_ExpGroupWPList"; ExpGroupCookiePrefix = "WSS_ExpGroup_"; ExpGroupCookieDelimiter = "&"; ExpGroupMaxWP = 11; ExpGroupMaxCookieLength = 3960; g_ExpGroupCAMLQueue = new Array(0); g_ExpGroupXSLTQueue = new Array(0); g_ExpGroupInProgress = false; g_ExpInitializing = false; g_ExpGroupTable = []; g_ExpGroupNeedsState = false; g_ExpGroupParseStage = false; locked = false; if ("undefined" == typeof _v_dictSod) { _v_dictSod = []; } if ("undefined" == typeof _v_dictCss) { _v_dictCss = []; } Sods = { missing: 1, loading: 2, pending: 3, loaded: 4, error: 5 }; _v_qsod = []; _v_sodctx = { "document": document, "window": window }; Sod.prototype = { url: undefined, key: undefined, loaded: undefined, depkeys: undefined, state: undefined, qfn: undefined, reset: undefined }; SodCallbackInfo.prototype = { success: undefined, error: undefined, expectedType: undefined }; g_PendingLoadSodQueue = null; g_viewportHeight = null; g_viewportWidth = null; g_wpadderHeight = 0; g_setWidthInited = false; g_workspaceResizedHandlers = []; g_setScrollPos = false; g_frl = false; g_spribbon = new Object(); g_spribbon.isMinimized = true; g_spribbon.isInited = false; g_spribbon.minimizedHeight = "35px"; g_spribbon.maximizedHeight = "126px"; v_stsOpenDoc2 = null; v_strStsOpenDoc2 = null; deleteInstance = 0; firstCalled = true; _callbackinitdelayed = false; g_spDragDropUpload = {}; SPDragUploadInfo.prototype = { webPartId: undefined, serverUrl: undefined, siteRelativeUrl: undefined, listName: undefined, rootFolder: undefined, overwriteAll: undefined, hideProgressBar: undefined, refreshFunc: undefined, preUploadFunc: undefined, postUploadFunc: undefined, checkPermissionFunc: undefined }; g_QuickLaunchControlIds = []; PageMinimized(); OverrideDefaultMethod("confirm", "LogConfirm", 1); OverrideDefaultMethod("alert", "LogAlert", 1); SupplementDefaultMethod("onerror", "LogOnError", 5); IMNControlObj = null; bIMNControlInited = false; IMNDictionaryObj = null; IMNDictionaryPresenceTextObj = null; bIMNSorted = false; bIMNOnloadAttached = false; IMNOrigScrollFunc = null; bIMNInScrollFunc = false; IMNSortableObj = null; IMNHeaderObj = null; IMNNameDictionaryObj = null; IMNNameDictionaryPresenceTextObj = null; IMNShowOfflineObj = null; OwaLang = "1033"; OwaRoot = "owa/"; OwaSharedHoverCardJsKey = "sharedhovercard.js"; OwaSharedHoverCardStringsJsKey = "sharedhovercard.strings.js"; SharedHoverCardHideTime = 800; SharedHoverCardDelayTimer = null; SharedHoverCardDelayTime = 250; SharedHoverCardDelayed = null; SharedHoverCardPending = null; currentShowHoverCardInstance = 0; nextShowHoverCardInstance = 0; currentShowHoverCardInstanceBootstrappedState = false; IMNImageInfo_InitializePrototype(); imnCount = 0; imnElemsCount = 0; imnMarkerBatchSize = 4; imnMarkerBatchDelay = 40; sharedHoverCardsCount = 0; sharedHoverCardElementsCount = 0; sharedHoverCardMarkerBatchSize = 4; sharedHoverCardMarkerBatchDelay = 40; IsIFrameSharedHoverCard = false; SharedHoverCardIFrame = null; SharedHoverCardIFrameCode = "\ \ \ "; ; _spBodyOnLoadCalled = false; if (typeof _spBodyOnLoadFunctions === "undefined" || _spBodyOnLoadFunctions === null) { _spBodyOnLoadFunctions = []; } _spFormOnSubmitCalled = false; _spBodyOnPageShowRegistered = false; _spBodyOnLoadCalled = false; if ("undefined" != typeof _spBodyOnLoad) { _spBodyOnLoad = undefined; } if ("undefined" != typeof _spRestoreScrollForDiv_rscr) { _spRestoreScrollForDiv_rscr = undefined; } if (_spBodyOnLoadFunctionNames == null) { _spBodyOnLoadFunctionNames = []; _spBodyOnLoadFunctionNames.push("_spBodyOnLoad"); _spBodyOnLoadFunctionNames.push("_spRestoreScrollForDiv_rscr"); } _spFormOnSubmitCalled = false; _spBodyOnPageShowRegistered = false; _spPageLoadedRegistered = false; _inlineEditString = null; _spOriginalFormAction = null; g_numberOfYields = 10; g_spPreFetchKeys = []; _spSuppressFormOnSubmitWrapper = false; _inlineEditString = null; _spPageLoadedRegistered = false; g_fAnimateListCSR = true; g_fAreAllSodsLoaded = false; if (document.body == null || document.body.firstChild == null) { if (typeof document.addEventListener != 'undefined' && typeof window.msWriteProfilerMark != 'undefined') { document.addEventListener("DOMContentLoaded", function() { window.msWriteProfilerMark("DOMContentLoaded"); }, false); } AttachEvent("DOMContentLoaded", _spBodyOnLoadWrapper, document); window.onload = _spBodyOnLoadWrapper; AttachEvent("hashchange", _bodyOnHashChangeHandler, window); } DeveloperDashboard = { wnd: null, msgQueue: [], cookie: 'WSS_DeveloperDashboard', PostMsg: function(to, subject, msg) { DeveloperDashboard.msgQueue.push({ to: to, subject: subject, msg: msg }); } }; (function() { window.setTimeout(function() { ddInit(); ddToggleCScope(); }, 0); })(); flyoutsAllowed = false; g_ExecuteOrWaitJobs = new Object(); cuiKeyHash = {}; cuiKeyHash[219] = 91; cuiKeyHash[221] = 93; cuiKeyHash[51] = 35; cuiKeyHash[186] = 59; cuiKeyHash[187] = 61; cuiKeyHash[188] = 44; cuiKeyHash[189] = 45; cuiKeyHash[190] = 46; cuiKeyHash[191] = 47; cuiKeyHash[222] = 39; g_ribbonHeaderScaleClass = ['ms-cui-tts', 'ms-cui-tts-scale-1', 'ms-cui-tts-scale-2']; SPRibbonInfo.prototype.buildMinimized = undefined; SPRibbonInfo.prototype.initialTabId = undefined; StatusIdWithTopPriority = null; StatusColorWithTopPriority = null; StatusPriority = { red: 4, yellow: 3, green: 2, blue: 1 }; StatusBarClassNames = { "4": "ms-status-red", "3": "ms-status-yellow", "2": "ms-status-green", "1": "ms-status-blue" }; ColorMap = { red: 4, yellow: 3, green: 2, blue: 1 }; g_uniqueIndex = 0; g_dlgWndTop = null; g_spDlgLauncher = true; g_ModalDialogCount = 0; g_overlayPopup = undefined; g_childDialog = undefined; CommonGlobalDialogReturnValue_InitializePrototype(); commonModalDialogReturnValue = new CommonGlobalDialogReturnValue(); if (!(window.location.pathname.toLowerCase()).endsWith("/_layouts/15/start.aspx")) { var raiseNav = function() { if ("unknown" != typeof Sys && "undefined" != typeof Sys && null != Sys && null != Sys.Application) { Sys.Application.add_load(function() { window.setTimeout(function() { ajaxNavigate._raiseNavigate(ajaxNavigate); }, 0); }); } }; var aListener = function() { document.removeEventListener("DOMContentLoaded", aListener, false); raiseNav(); }; if (Boolean(document.addEventListener)) { document.addEventListener("DOMContentLoaded", aListener, false); } else { _spBodyOnLoadFunctions.push(raiseNav); } } SPListView = true; ; ; RenderECBinline = function(renderCtx, listItem, field) { var ret = []; ret.push(""); ret.push(""); ret.push("\"""); ret.push(""); ret.push(""); return ret.join(''); }; CALLOUT_STR_ELLIPSIS = '...'; CALLOUT_ELLIPSIS_LENGTH = CALLOUT_STR_ELLIPSIS.length; CALLOUT_CHARS_TO_TRUNCATE_PER_ITERATION = 2 + CALLOUT_ELLIPSIS_LENGTH; MountPointSiteIdFieldName = "_mpSPSiteId"; MountPointWebIdFieldName = "_mpSPWebId"; MountPointItemUniqueIdFieldName = "_mpItemUniqueId"; MountPointInfo = (function() { function createMountPointInfo(mpProperties) { var rootFolder = mpProperties.rootFolder; var siteId = mpProperties.siteId; var webId = mpProperties.webId; var folderId = mpProperties.folderId; var mpPrefix = mpProperties.mpPrefix; var isInitProperly = Boolean(mpPrefix) && Boolean(siteId) && Boolean(webId) && Boolean(folderId); var mpLevel = Boolean(mpProperties.mpLevel) ? mpProperties.mpLevel : "1,0"; var majorLevel = -1; var minorLevel = -1; var levels = []; if (Boolean(mpLevel) && isInitProperly) { levels = mpLevel.split(','); if (levels.length == 2) { majorLevel = tryParseLevel(levels[0], 1); minorLevel = tryParseLevel(levels[1], 0); } } function changeMpLevel(majorLevelChange, minorLevelChange) { majorLevel += majorLevelChange; if (majorLevelChange == 0) minorLevel += minorLevelChange; else minorLevel = 0; mpLevel = String(majorLevel) + "," + String(minorLevel); } function tryParseLevel(level, minLevel) { var retLevel = minLevel; if (level != null && level.length > 0 && !isNaN(retLevel)) { retLevel = parseInt(level); if (retLevel < minLevel) return minLevel; } return retLevel; } function getMountPointProperties(bRemoteIdsOnly) { if (!isInitProperly) return {}; var props = { RemoteSiteId: siteId, RemoteWebId: webId, RemoteFolderId: folderId }; if (!Boolean(bRemoteIdsOnly)) { props.MPLevel = mpLevel; props.MPPrefix = mpPrefix; } return props; } function getMountPointUrl(joinToken, bRemoteIdsOnly) { var ret = []; if (isInitProperly) { var props = getMountPointProperties(bRemoteIdsOnly); for (var propKey in props) { ret.push(propKey + "=" + props[propKey]); } } if (!Boolean(joinToken)) joinToken = '&'; return ret.join(joinToken); } return { "isInitProperly": isInitProperly, "mpPrefix": isInitProperly ? mpPrefix : "", "rootFolder": isInitProperly ? rootFolder : "", "getMajorLevel": function getMajorLevel() { return majorLevel; }, "getMinorLevel": function getMinorLevel() { return minorLevel; }, "incrementMajorLevel": function incrementMajorLevel() { changeMpLevel(1, 0); }, "incrementMinorLevel": function incrementMinorLevel() { changeMpLevel(0, 1); }, "decrementMinorLevel": function decrementMinorLevel() { changeMpLevel(0, -1); }, "getMountPointProperties": getMountPointProperties, "getMountPointUrl": getMountPointUrl }; } ; function createByListItem(listItem, renderCtx) { var mpProperties = {}; if (Boolean(IsMountPoint(listItem)) && Boolean(renderCtx)) { var curUri = null; if (Flighting.VariantConfiguration.IsExpFeatureClientEnabled(168)) { curUri = new URI('http://foo?' + getHashAsQueryString(renderCtx)); } if (!Boolean(curUri)) { curUri = new URI(Nav.ajaxNavigate.get_href()); } if (Boolean(curUri)) { mpProperties.mpPrefix = curUri.getQueryParameter("MPPrefix"); if (!Boolean(mpProperties.mpPrefix)) mpProperties.mpPrefix = listItem.FileRef.replace(/.url$/, ''); mpProperties.siteId = listItem[MountPointSiteIdFieldName]; mpProperties.webId = listItem[MountPointWebIdFieldName]; mpProperties.folderId = listItem[MountPointItemUniqueIdFieldName]; } } return createMountPointInfo(mpProperties); } function createByContext(renderCtx) { return createByQueryString(getHashAsQueryString(renderCtx)); } function createByQueryString(queryString) { var mpProperties = {}; if (Boolean(queryString)) { var uri = new URI("http://foo?" + queryString); mpProperties.rootFolder = uri.getQueryParameter("RootFolder"); if (!Boolean(mpProperties.rootFolder)) mpProperties.rootFolder = ""; mpProperties.siteId = uri.getQueryParameter("RemoteSiteId"); mpProperties.webId = uri.getQueryParameter("RemoteWebId"); mpProperties.folderId = uri.getQueryParameter("RemoteFolderId"); mpProperties.mpPrefix = uri.getQueryParameter("MPPrefix"); mpProperties.mpLevel = uri.getQueryParameter("MPLevel"); } return createMountPointInfo(mpProperties); } function getHashAsQueryString(renderCtx) { var retStr = ""; var hash = ""; if (renderCtx != null && renderCtx.clvp != null && typeof renderCtx.clvp.WebPartId == "function") { hash = GetInplviewHash(renderCtx.clvp.WebPartId()); if (Boolean(hash)) retStr = InplViewUtil.DecodeHashAsQueryString(hash); } return retStr; } return { "createByListItem": createByListItem, "createByContext": createByContext, "createByQueryString": createByQueryString }; })(); ShortcutLinkTargetUrlFieldName = "_ShortcutUrl"; ShortcutLinkSiteIdFieldName = "_ShortcutSiteId"; ShortcutLinkWebIdFieldName = "_ShortcutWebId"; ShortcutLinkUniqueIdFieldName = "_ShortcutUniqueId"; _EnsureJSNamespace("SP"); if (typeof SP.SOD == "undefined") SP.SOD = {}; SP.SOD.execute = EnsureScriptParams; SP.SOD.executeFunc = EnsureScriptFunc; SP.SOD.registerSod = RegisterSod; SP.SOD.registerSodDep = RegisterSodDep; SP.SOD.executeOrDelayUntilScriptLoaded = ExecuteOrDelayUntilScriptLoaded; SP.SOD.executeOrDelayUntilEventNotified = ExecuteOrDelayUntilEventNotified; SP.SOD.notifyScriptLoadedAndExecuteWaitingJobs = NotifyScriptLoadedAndExecuteWaitingJobs; SP.SOD.notifyEventAndExecuteWaitingJobs = NotifyEventAndExecuteWaitingJobs; SP.SOD.loadMultiple = LoadMultipleSods; SP.SOD.delayUntilEventNotified = DelayUntilEventNotified; g_prefetch = 1; SP.SOD.get_prefetch = function() { return g_prefetch; }; SP.SOD.set_prefetch = function(prefetch) { g_prefetch = prefetch; }; SP.SOD.prefetch = _spPreFetch; g_ribbonImagePrefetch = true; SP.SOD.get_ribbonImagePrefetchEnabled = function() { return g_ribbonImagePrefetch; }; SP.SOD.set_ribbonImagePrefetchEnabled = function(ribbonImagePrefetchEnabled) { g_ribbonImagePrefetch = ribbonImagePrefetchEnabled; }; _EnsureJSNamespace("SP.UI"); if (typeof SP.UI.Workspace == "undefined") SP.UI.Workspace = {}; SP.UI.Workspace.add_resized = function(handler) { g_workspaceResizedHandlers.push(handler); }; SP.UI.Workspace.remove_resized = function(handler) { var match = -1; for (var i = 0, wLen = g_workspaceResizedHandlers.length; i < wLen; i++) { if (handler == g_workspaceResizedHandlers[i]) { match = i; break; } } if (match != -1) { g_workspaceResizedHandlers.splice(match, 1); } }; AriaLogger = {}; (function() { AriaLogger.TenantToken = { stsPPE: "9eeb6da3b66f4f20aec8c84bdaccb30d-429a3df1-6962-4e5e-bfc8-31dfd52c4e12-7768", stsProd: "66034bde775d42a19f1a2d3d2e647e42-82d9432e-bacf-4067-bb5d-fe87f33fa915-7384" }; var token = null; var logger = null; AriaLogger.Logger = function() { var context = window["_spPageContextInfo"]; var flushed = false; if (!Boolean(context)) return; switch (context.env) { case "edog": case "prodbubble": token = AriaLogger.TenantToken.stsPPE; break; case "prod": case "dprod": token = AriaLogger.TenantToken.stsProd; break; default: token = AriaLogger.TenantToken.stsPPE; break; } if (!Boolean(logger)) { logger = AWTLogManager.initialize(token); var semanticContext = logger.getSemanticContext(); semanticContext.setUserId(context.systemUserKey); var logContext = { AccountType: getAccountType(context), Environment: context.env, IsAuthenticated: isUserAuthenticated(context), BrowserUserAgent: navigator.userAgent, BrowserIsMobile: isMobile(), SiteSubscriptionId: context.siteSubscriptionId }; if (Boolean(context.farmLabel)) { logContext.FarmLabel = context.farmLabel; } for (var key4 in logContext) { logger.setContext(key4, logContext[key4]); } } var OnBeforeUnload = function(e) { if (Boolean(logger) && !Boolean(logger.flushed)) { AWTLogManager.flush(function() { }); logger.flushed = true; } }; if (typeof window.addEventListener != "undefined") { window.addEventListener("beforeunload", OnBeforeUnload, true); } this.safeLogEvent = function(ev) { try { this.logEvent(ev); } catch (exception) { if (Boolean(exception)) { ; } } }; this.logEvent = function(ev) { if (!Boolean(logger) || !ariaEnabledEvent(ev)) return; var eName = ev.eventName.toString(); var eType = "Start"; var eResultType; var eResultCode; var eComponent; var nName; if (ev.eventName == "RUMOne") { eName = "RUMOneDataUpload"; eType = "single"; nName = ev.data.ScenarioId.toString(); } else if (ev.eventName == "UserEngagement") { eName = "qos"; if (Boolean(ev.data) && Boolean(ev.data.EngagementName)) { eType = ev.data.EngagementName.endsWith(".Start") ? "Start" : ev.data.EngagementName.endsWith(".Success") ? "End" : ev.data.EngagementName.endsWith(".Failure") ? "Failure" : "NA"; eResultType = eType == "End" ? "Success" : eType == "Failure" ? "Failure" : "NA"; eComponent = ev.data.EngagementName.substring(0, ev.data.EngagementName.indexOf('.')); nName = ev.data.EngagementName.substring(0, ev.data.EngagementName.lastIndexOf('.')); eResultCode = Boolean(ev.data.Properties) && Boolean(ev.data.Properties.ErrorCode) ? ev.data.Properties.ErrorCode.toString() : "NA"; } } var eventProperties = new AWTEventProperties(); var values = { "CorrelationVector": ev.correlationVector, "Component": eComponent, "Name": nName, "WebLog_FullName": eName, "WebLog_EventType": eType }; values["WebLog_Type_" + eName.toString()] = 1; values["Workload"] = getWorkLoad(ev); if (eType == "End") { values["ResultType"] = eResultType; values["ResultCode"] = eResultCode; } var prefixName; if (ev.eventName == "RUMOne") { prefixName = eName + "_dictionary_"; } else if (eName == "qos") { prefixName = "Qos_extraData_"; } var dictProperties = ev.data; for (var key2 in dictProperties) { var v = dictProperties[key2]; if (!Boolean(v)) continue; values[prefixName + key2] = dictProperties[key2]; } eventProperties.setName("ev_" + eName.toString()); this.setProperties(eventProperties, values); logger.logEvent(eventProperties); }; this.setProperties = function(properties, values) { try { for (var key3 in values) { properties.setProperty(key3, values[key3]); } } catch (exception) { var errorCode = void 0; if (exception != null) { errorCode = exception.ErrorCode(); if (typeof console != "undefined" && Boolean(console) && typeof console.log == "function") { console.log("Aria error: " + exception.toString() + errorCode.toString()); } } throw exception; } }; this.isInitialized = function() { return Boolean(logger); }; function ariaEnabledEvent(ev) { if (ev.eventName == "RUMOne" || ev.eventName == "UserEngagement") { return true; } return false; } function Capitalize(str) { if (Boolean(str)) { return str[0].toUpperCase() + str.substr(1); } return str; } function getWorkLoad(ev) { if (ev.eventName == "RUMOne" && Boolean(ev.data) && Boolean(ev.data.ScenarioId)) { return ev.data.ScenarioId.substring(0, ev.data.ScenarioId.indexOf('-')); } if (ev.EventName == "UserEngagement" && Boolean(ev.data) && Boolean(ev.data.name)) { return ev.data.EngagementName.substring(0, ev.data.EngagementName.indexOf('.')); } return "STS"; } function isMobile() { var isIOS = BrowserDetection.userAgent.ipad || (navigator.userAgent.toLowerCase()).indexOf("iphone") > -1; var isAndroid = (navigator.userAgent.toLowerCase()).indexOf("android") > -1 && !isIOS; return !!(BrowserDetection.userAgent.windowsphone || isIOS || isAndroid); } function isUserAuthenticated(ctx1) { return Boolean(ctx1.userLoginName); } function getAccountType(ctx2) { return isUserAuthenticated(ctx2) ? "Business" : "BusinessAnonymouse"; } }; var ariaLogger = null; AriaLogger.GetLogger = function() { if (!Boolean(ariaLogger)) { ariaLogger = new AriaLogger.Logger(); } return ariaLogger; }; })(); BaseLogger = {}; (function() { BaseLogger.Constants = { STREAM_ID: 1234, JSON_VERSION: "V1", IDX_VERSION: 0, IDX_EVENTNAME: 1, IDX_PROPERTY_START: 2, MAX_DATA_SIZE: 64 * 1024, MAX_ROWS_IN_STREAM: 1000, SIZE_DWORD: 4, SIZE_DATAPOINT_ENTRY: 3 * 4, SIZE_STREAM_ENTRY: 3 * 4, MS_BTN_EPOCHS: 11644473600000, MAX_INT32: 0xFFFFFFFF, MAX_SQM_DATAID: 0x7FFFFFFF, DATAKEY_SESSION_NORMAL: 0, DATAKEY_SESSION_CONTINUATION: 1 }; BaseLogger.BSQMFlags = { FLAG_BSQM_ENABLED: 0x00000010, FLAG_QOS_ENABLED: 0x00000020 }; BaseLogger.DATAID = { DATAID_BSQM_MAXSTREAMROWSSTREAMID: 8048, DATAID_BSQM_MAXSTREAMROWS: 7993, DATAID_SESSION_TYPE: 60 }; BaseLogger.UploadCallBack = function(request) { if (Boolean(request)) { if (request.readyState === 4 && request.status !== 200 && Boolean(request.status)) { } } }; BaseLogger.Logger = function(customUploadFunc) { var WSAStreamRow = function(values) { this.Tic = GetTicks32(); var numValues = values.length; this.Vals = new Array(numValues); for (var i = 0; i < numValues; i++) { this.Vals[i] = values[i]; } }; var WSADatapoint = function(id, value) { this.Id = id; this.Val = value; this.Tic = GetTicks32(); }; var WSAStream = function(id, width) { this.Id = id; this.Width = width; this.Rows = new Array(0); }; var WSAData = function(fIsOptedIn, fIsQoSEnabled) { this.StartTime = GetTicks64(); this.EndTime = null; this.CorrelationId = null; var flags = 0; if (fIsOptedIn) flags = BaseLogger.BSQMFlags.FLAG_BSQM_ENABLED; if (fIsQoSEnabled) flags |= BaseLogger.BSQMFlags.FLAG_QOS_ENABLED; this.Flags = flags; this.wsaDatapoints = new Array(0); this.wsaStreams = new Array(0); }; var _uploadUrl = null; var _wsaData = null; var _numDatapoints = 0; var _numStreams = 0; var _numStreamBytes = 0; var _dictStreams = null; var _dictDatapoints = null; var _streamRowCount = 0; var _bDataAvailableForUpload = false; var _bContinuation = false; var _initialized = false; var _fEnabled = false; var _uploadFunc = null; this.SetCorrelationId = function(correlationId) { _initialize(); if (Boolean(_wsaData)) { _wsaData.CorrelationId = correlationId; } }; this.WriteLog = function(eventName, dictProperties) { _initialize(); if (!_fEnabled || !Boolean(eventName) || !Boolean(dictProperties)) { return; } var values = new Array(BaseLogger.Constants.IDX_PROPERTY_START + 1); values[BaseLogger.Constants.IDX_VERSION] = BaseLogger.Constants.JSON_VERSION; values[BaseLogger.Constants.IDX_EVENTNAME] = eventName; var index = BaseLogger.Constants.IDX_PROPERTY_START; for (var key in dictProperties) { values[index++] = key; var propVal = dictProperties[key]; if (propVal != null && propVal instanceof Date) { propVal = propVal.getTime(); } values[index++] = propVal; } _addToStream(BaseLogger.Constants.STREAM_ID, values); }; this.UploadData = function() { _initialize(); _uploadData(); }; var _initialize = function() { if (_initialized) { return; } _fEnabled = _wsaCEIPEnabled(); if (!_fEnabled) { return; } _wsaData = new WSAData(_fEnabled, false); _uploadUrl = "/_layouts/15/WsaUpload.ashx"; _dictStreams = new Array(0); _dictDatapoints = new Array(0); _createStream(BaseLogger.Constants.STREAM_ID, 1); _uploadFunc = Boolean(customUploadFunc) ? customUploadFunc : _uploadWsaDataRequest; _initialized = true; }; var _createStream = function(streamId, width) { if (!Boolean(_dictStreams[streamId])) { var wsaStream = new WSAStream(streamId, width); var idxStream = _numStreams; _wsaData.wsaStreams[idxStream] = wsaStream; _numStreams++; _numStreamBytes += BaseLogger.Constants.SIZE_STREAM_ENTRY; _dictStreams[streamId] = idxStream; } }; var _addToStream = function(streamId, dictValues) { try { var wsaStreamRow = new WSAStreamRow(dictValues); if (_isMaxSizeReachedCheck()) { return; } _bDataAvailableForUpload = true; _setDatapoint(BaseLogger.DATAID.DATAID_BSQM_MAXSTREAMROWSSTREAMID, streamId); var wsaStream = _wsaData.wsaStreams[_dictStreams[streamId]]; if (Boolean(wsaStream)) { if (_streamRowCount < BaseLogger.Constants.MAX_ROWS_IN_STREAM) { wsaStream.Rows[_streamRowCount++] = wsaStreamRow; _numStreamBytes += _getTotalBytesForRow(wsaStreamRow); _setDatapoint(BaseLogger.DATAID.DATAID_BSQM_MAXSTREAMROWS, _streamRowCount); } else { throw "BaseLogger: MAX_ROWS_IN_STREAM exceeded for stream ID " + String(streamId); } } } catch (e) { } }; var _getTotalBytesForRow = function(row) { var numTotalBytes = BaseLogger.Constants.SIZE_DWORD; for (var i = 0; i < row.Vals.length; i++) { var value = String(row.Vals[i]); numTotalBytes += value.length * 2; } numTotalBytes += (row.Vals.length - 1) * 6; return numTotalBytes; }; var _setDatapoint = function(datapointId, datapointValue) { if (datapointId < 1 || datapointId > BaseLogger.Constants.MAX_SQM_DATAID) { return; } if (datapointValue < 0 || datapointValue > BaseLogger.Constants.MAX_INT32) { return; } var savedDatapoint = null; var idxDP = _dictDatapoints[datapointId]; if (Boolean(idxDP)) { savedDatapoint = _wsaData.wsaDatapoints[idxDP]; } if (savedDatapoint == null) { var datapoint = new WSADatapoint(datapointId, datapointValue); var idxDatapoint = _numDatapoints; _wsaData.wsaDatapoints[idxDatapoint] = datapoint; _dictDatapoints[datapointId] = idxDatapoint; _numDatapoints++; } else { savedDatapoint.Val = datapointValue; } }; var _uploadData = function() { if (!_fEnabled || _wsaData == null || !Boolean(_uploadUrl)) { return; } try { if (_bDataAvailableForUpload) { if (Boolean(_bContinuation)) { _setDatapoint(BaseLogger.DATAID.DATAID_SESSION_TYPE, BaseLogger.Constants.DATAKEY_SESSION_CONTINUATION); } else { _setDatapoint(BaseLogger.DATAID.DATAID_SESSION_TYPE, BaseLogger.Constants.DATAKEY_SESSION_NORMAL); _bContinuation = true; } _wsaData.EndTime = GetTicks64(); var jsonString = null; try { jsonString = JSON.stringify(_wsaData); } catch (e) { } _initContinuationSession(); if (jsonString != null && jsonString.length > 0) { _uploadFunc(jsonString); } } } catch (e1) { } }; var _initContinuationSession = function() { _dictStreams = new Array(0); _dictDatapoints = new Array(0); _numDatapoints = 0; _numStreams = 0; _streamRowCount = 0; _numStreamBytes = 0; _numDatapoints = 0; var corrId = _wsaData.CorrelationId; _wsaData = new WSAData(_fEnabled, false); _wsaData.CorrelationId = corrId; _createStream(BaseLogger.Constants.STREAM_ID, 1); _bDataAvailableForUpload = false; }; var _uploadWsaDataRequest = function(json) { var request = new XMLHttpRequest(); request.onreadystatechange = function() { BaseLogger.UploadCallBack(request); }; request.open('POST', _uploadUrl, true); request.setRequestHeader('Content-Type', 'application/json'); request.send(json); }; var _isMaxSizeReachedCheck = function() { var size = _numDatapoints * BaseLogger.Constants.SIZE_DATAPOINT_ENTRY + _numStreamBytes; if (size >= BaseLogger.Constants.MAX_DATA_SIZE) { _uploadData(); size = _numDatapoints * BaseLogger.Constants.SIZE_DATAPOINT_ENTRY + _numStreamBytes; return size >= BaseLogger.Constants.MAX_DATA_SIZE; } return false; }; var _wsaCEIPEnabled = function() { return typeof g_wsaEnabled != "undefined" && g_wsaEnabled; }; var startTicks = 0; var GetTicks32 = function() { var timeNow = new Date(); var ticks64 = timeNow.getTime(); if (startTicks == 0) { startTicks = ticks64; } return 1 + ticks64 - startTicks & 0x7FFFFFFF; }; var GetTicks64 = function() { var timeNow = new Date(); var ticks64 = timeNow.getTime(); ticks64 = ticks64 + BaseLogger.Constants.MS_BTN_EPOCHS; ticks64 = ticks64 * 10000; return ticks64; }; }; var _baseLoggerInstance = null; BaseLogger.GetLogger = function() { if (_baseLoggerInstance == null) { _baseLoggerInstance = new BaseLogger.Logger(); } return _baseLoggerInstance; }; })(); CacheLogger = { "__namespace": true }; CacheLogger_module_def(); DebugLogger = { "__namespace": true }; DebugLogger_module_def(); QoSLogger = { "__namespace": true }; QoSLogger_module_def(); RUMDelta = {}; (function() { var LOG_ID = "RUMActionDelta"; RUMDelta.Logger = function(logger) { RUMDelta.Application = { SharePointTouchAppHost: 0x0001, SharePoint: 0x0002, SharePointFileXfer: 0x0003 }; var RUMDeltaDataItem = function(action, correlationId, lastSeenCorrelationId, beginTime, firstChance, networkDone, serverTime, eupl) { this.Version = 1; this.Action = action; this.CorrelationId = correlationId; this.LastSeenCorrelationId = lastSeenCorrelationId; this.UserAgent = navigator.userAgent; this.BeginTime = beginTime; this.FirstChance = firstChance; this.NetworkDone = networkDone; this.ServerTime = serverTime; this.EUPL = eupl; }; var _correlationId = ""; var _lastSeenServerCorrelationId = ""; var _logId = LOG_ID; var _basicLogger = Boolean(logger) ? logger : BaseLogger.GetLogger(); this.SetCorrelationId = function(correlationId) { _basicLogger.SetCorrelationId(correlationId); _correlationId = correlationId; }; this.SetLastSeenCorrelationId = function(correlationId) { _lastSeenServerCorrelationId = correlationId; }; this.UploadRUMData = function(action, beginTime, firstChance, networkDone, serverTime, eupl) { try { var logItem = new RUMDeltaDataItem(action, _correlationId, _lastSeenServerCorrelationId, beginTime, firstChance, networkDone, serverTime, eupl); _basicLogger.WriteLog(_logId, logItem); _basicLogger.UploadData(); } catch (e) { } }; }; })(); PerformanceLogger = { "__namespace": true }; PerformanceLogger_module_def(); SPRUMLogger = { "__namespace": true }; SPRUMLogger_module_def(); SPLoggers = { "__namespace": true }; SPLoggers_module_def(); getLoggingInfo = function(args) { var info = []; if (Boolean(args)) { addToInfoIfExists("ErrorCode", info, args, args.get_errorCode); addToInfoIfExists("CorrelationID", info, args, args.get_errorTraceCorrelationId); addToInfoIfExists("ErrorType", info, args, args.get_errorTypeName); addToInfoIfExists("Message", info, args, args.get_message); addToInfoIfExists("StackTrace", info, args, args.get_stackTrace); } return info.join("\n"); }; addToInfoIfExists = function(header, info, args, fn) { if (args != null && typeof fn != 'undefined' && fn != null) { var result = fn.call(args); if (result != null || result != "") info.push(header + ": " + result); } }; SP.Performance.UploadNonMDSPageLoadTime = function(pageContext, endTime) { (SP.Performance.Log.GetLogger()).UploadNonMDSPageLoadTelemetry(pageContext, endTime); }; _WOPIDocLoaded = false; SetWOPIDocLoaded = function() { _WOPIDocLoaded = true; }; _TelemetryEndTime = -1; UploadFileXferTelemetry = function(source, startTime, endTime, byteCount) { (SP.Performance.Log.GetLogger()).UploadFileXferTelemetry(source, startTime, endTime, byteCount); _TelemetryEndTime = endTime; }; ReadyToUploadLogs = function() { if (typeof SP.ReadyToUploadLogs != "undefined") SP.ReadyToUploadLogs(); }; if (typeof g_mdsReady == "undefined") { if (typeof window.addEventListener != 'undefined') { window.addEventListener('load', RumNonMDSHandler, false); } else { window.attachEvent('onload', RumNonMDSHandler); } } ; if (typeof SPThemeUtils == 'undefined') { SPThemeUtils = { "__namespace": true }; SPThemeUtils_module_def(); } if (typeof SuiteNavRendering == 'undefined') { SuiteNavRendering = { "__namespace": true }; SuiteNavRendering_module_def(); } if (typeof ModuleLink == 'undefined') { ModuleLink = { "__namespace": true }; ModuleLink_module_def(); } _spBodyOnLoadFunctionNames.push("AllowCSSFiltersOnIE8"); initJsLoaded = true; notifyScriptsLoadedAndExecuteWaitingJobs("init.js"); if (typeof spWriteProfilerMark == 'function') spWriteProfilerMark("perfMarkEnd_" + "init.js"); } var spWriteProfilerMark; var OffSwitch; function OffSwitch_module_def() { OffSwitch.IsActive = OffSwitch_IsActive; function OffSwitch_IsActive(guidOffSwitchKey) { var offSwitches = window["g_SPOffSwitches"]; var contextOffSwitches = null; var defaultResultWhenDataMissing = true; if (offSwitches == null) { var pageContextInfo = window["_spPageContextInfo"]; contextOffSwitches = pageContextInfo == null ? null : pageContextInfo["killSwitches"]; if (contextOffSwitches != null && !contextOffSwitches.hasOwnProperty("2625010B-67AA-49D2-B302-A12D0281E865")) { offSwitches = contextOffSwitches; } } if (offSwitches != null && !offSwitches.hasOwnProperty("DA1F7C1B-A819-4265-BD85-6D15C304CFDC")) { defaultResultWhenDataMissing = false; } var offSwitchActivated; offSwitchActivated = offSwitches == null ? defaultResultWhenDataMissing : offSwitches.hasOwnProperty(guidOffSwitchKey); return offSwitchActivated; } } var RuntimeErrors; function RuntimeErrors_module_def() { RuntimeErrors.MismatchError = function(expected, actual, msg) { Error.call(this, msg); this.expected = expected; this.actual = actual; }; RuntimeErrors.MismatchError.prototype = new Error; RuntimeErrors.ArgumentTypeError = function(expected, actual) { RuntimeErrors.MismatchError.call(this, expected, actual, "runtime type mismatch"); }; RuntimeErrors.ArgumentTypeError.prototype = new RuntimeErrors.MismatchError; } var Verify; function Verify_module_def() { function _Verify(errorCtr, expected, actual) { if (actual != expected) { throw new errorCtr(expected, actual); } } Verify.ArgumentType = function _VerifyArgumentType(arg, expected) { var primitiveType = typeof arg; if (typeof expected == 'function') { _Verify(RuntimeErrors.ArgumentTypeError, 'object', primitiveType); if (!(arg instanceof expected)) { throw new RuntimeErrors.ArgumentTypeError(expected, arg.constructor); } } else if (typeof expected == 'string') { _Verify(RuntimeErrors.ArgumentTypeError, expected, primitiveType); } else { throw new RuntimeErrors.ArgumentTypeError('function or string', typeof expected); } }; } var Define; function Define_module_def() { var modules = {}; Define.loadScript = function(url, successCallback, errCallback) { Verify.ArgumentType(url, 'string'); Verify.ArgumentType(successCallback, 'function'); Verify.ArgumentType(errCallback, 'function'); var agt = navigator.userAgent.toLowerCase(); var ie8down = agt.indexOf("msie") != -1 && parseInt(agt.substring(agt.indexOf("msie ") + 5)) <= 8; var s = document.createElement("SCRIPT"); s.type = "text/javascript"; s.src = url; if (ie8down) { s.onreadystatechange = getCallback(successCallback); } else { s.onload = getCallback(successCallback); s.onerror = getCallback(errCallback); } (document.getElementsByTagName("HEAD"))[0].appendChild(s); return s; function getCallback(cb) { return function() { var loaded = false; if (ie8down && typeof s.readyState != 'undefined') loaded = s.readyState == "complete" || s.readyState == "loaded"; else loaded = true; if (loaded) { s.onreadystatechange = null; s.onload = null; s.onerror = null; cb(); } }; } }; Define.require = function(req, callback) { if (typeof req == 'object' && req instanceof Array) { return requireMultiple(callback); } else { Verify.ArgumentType(req, 'string'); return requireSingle(req, callback); } function requireSingle(n, cb) { if (modules[n] != null) { if (typeof cb == 'function') { cb(modules[n]); } return modules[n]; } Verify.ArgumentType(cb, 'function'); Define.loadScript("/_layouts/15/" + n + ".js", function() { cb(modules[n]); }, function() { throw "Failed to load module: " + n; }); return undefined; } function requireMultiple(cb) { Verify.ArgumentType(cb, 'function'); var names = req; if (names.length == 0) { cb(); return; } var allNames = names.slice(0, names.length); var n = names.shift(); var callbackWithDeps = function() { var deps = []; for (var i = 0; i < allNames.length; i++) { deps.push(Define.require(allNames[i])); } cb.apply(null, deps); }; Define.require(n, function() { Define.require(names, callbackWithDeps); }); } }; Define.define = function(n, deps, def) { Verify.ArgumentType(n, 'string'); Verify.ArgumentType(deps, Array); Verify.ArgumentType(def, 'function'); if (modules[n] != null) { return; } Define.require(deps, function() { modules[n] = def.apply(null, Array.prototype.slice.call(arguments)); }); }; } var BrowserDetection; function BrowserDetection_module_def() { } var browseris; var bis; var BrowserStorage; function BrowserStorage_module_def() { StorageObject.prototype = { getItem: function(key) { return ""; }, setItem: function(key, value) { }, removeItem: function(key) { }, clear: function() { }, length: 0 }; function StorageObject() { var _this = this; var _data = {}; function StorageObject_ContainsKey(key) { return _data.hasOwnProperty(key); } function StorageObject_GetItem(key) { var v = _data[key]; if (typeof v == "undefined") v = null; return v; } ; function StorageObject_SetItem(key, value) { if (!StorageObject_ContainsKey(key)) { _this.length++; } _data[key] = String(value); } ; function StorageObject_RemoveItem(key) { var hasProp = StorageObject_ContainsKey(key); if (hasProp) { delete _data[key]; _this.length--; } } ; function StorageObject_Clear() { _data = {}; _this.length = 0; } ; this.length = 0; this.getItem = StorageObject_GetItem; this.setItem = StorageObject_SetItem; this.removeItem = StorageObject_RemoveItem; this.clear = StorageObject_Clear; } ; CachedStorage.prototype = StorageObject.prototype; function CachedStorage(storage) { var _this = this; function UpdateLength() { _this.length = storage.length; } UpdateLength(); this.getItem = function(key) { return storage.getItem(key); }; this.setItem = function(key, value) { try { storage.setItem(key, value); } catch (exStorage) { } UpdateLength(); }; this.removeItem = function(key) { try { storage.removeItem(key); } catch (exRemoveItemFromStorage) { } UpdateLength(); }; this.clear = function() { storage.clear(); UpdateLength(); }; } var _testKey = "BrowserStorageTest"; var _testValue = "1"; function TestStorage(storage) { var result = false; storage.setItem(_testKey, _testValue); if (storage.getItem(_testKey) === _testValue) { result = true; } storage.removeItem(_testKey); return result; } var _local = null; var _session = null; try { if (typeof window.localStorage != 'undefined') { var localStorageObject = window.localStorage; if (TestStorage(localStorageObject)) _local = localStorageObject; } } catch (exUsingLocalStorage) { } try { if (typeof window.sessionStorage != 'undefined') { var sessionStorageObject = window.sessionStorage; if (TestStorage(sessionStorageObject)) _session = sessionStorageObject; } } catch (exUsingSessionStorage) { } if (_session == null) _session = new StorageObject(); if (_local == null) _local = _session; BrowserStorage.local = new CachedStorage(_local); BrowserStorage.session = new CachedStorage(_session); } var CSSUtil; function CSSUtil_module_def() { function BuildRegex(className) { return new RegExp('(\\s|^)' + className + '(\\s|$)'); } CSSUtil.HasClass = function(elem, className) { if (elem == null || className == null) { return false; } return elem.className.match(BuildRegex(className)) != null; }; CSSUtil.AddClass = function(elem, className) { if (elem != null && !CSSUtil.HasClass(elem, className)) { elem.className += " " + className; return true; } return false; }; CSSUtil.RemoveClass = function(elem, className) { if (CSSUtil.HasClass(elem, className)) { elem.className = elem.className.replace(BuildRegex(className), ' '); return true; } return false; }; CSSUtil.pxToFloat = function(pxString) { if (typeof pxString != "string") return 0; var trimmedPxString = pxString.trim(); var pxWidth = Number((trimmedPxString.substring(0, trimmedPxString.length - 2)).trim()); return isNaN(pxWidth) ? 0 : pxWidth; }; CSSUtil.pxToNum = function(px) { var ret; if (px === "" || px === "none") { ret = 0; } else { ret = parseInt(px); } return ret; }; CSSUtil.numToPx = function(n) { if (typeof n != "number") { throw new Error("n must be a number."); } return String(Math.round(n)) + "px"; }; CSSUtil.getCurrentEltStyleByNames = function(elem, styleNames) { var style = null; var i = 0; while (i < styleNames.length) { style = CSSUtil.getCurrentStyle(elem, styleNames[i]); if (style != null) { break; } i++; } return style; }; CSSUtil.getCurrentStyle = function(element, cssStyle) { if (Boolean(element.currentStyle)) return element.currentStyle[cssStyle]; else { if (Boolean(window) && Boolean(window.getComputedStyle)) { var compStyle = window.getComputedStyle(element, null); if (Boolean(compStyle) && Boolean(compStyle.getPropertyValue)) { return compStyle.getPropertyValue(cssStyle); } } } return null; }; CSSUtil.getCurrentStyleCorrect = function(element, camelStyleName, dashStyleName) { if (typeof document.defaultView != 'undefined' && typeof document.defaultView.getComputedStyle != 'undefined') { return (document.defaultView.getComputedStyle(element, null)).getPropertyValue(dashStyleName); } else { if (camelStyleName == 'width') { return String(element.offsetWidth) + "px"; } return element.currentStyle[camelStyleName]; } }; CSSUtil.getOpacity = function(element) { return XUIHtml.GetOpacity(element); }; CSSUtil.setOpacity = function(element, value) { XUIHtml.SetOpacity(element, value); }; var XUIHtml = {}; XUIHtml.SetOpacity = function(domNode, newVal) { if (typeof domNode.style == "undefined") return; if (document.body.style.opacity != null) { if (newVal == 1) XUIHtml.RemoveCSSProperty(domNode, "opacity"); else { domNode.style.opacity = String(newVal); } } else { if (newVal == 1) XUIHtml.RemoveCSSProperty(domNode, "filter"); else domNode.style.filter = 'alpha(opacity=' + String(newVal * 100) + ')'; } }; XUIHtml.RemoveCSSProperty = function(domNode, propName) { if (typeof domNode.style.removeProperty != "undefined") domNode.style.removeProperty(propName); else domNode.style.removeAttribute(propName); }; XUIHtml.GetOpacity = function(domNode) { if (typeof domNode.style == "undefined") return -1; if (document.body.style.opacity != null) { var o = domNode.style.opacity; return o != null && o != '' ? parseFloat(o) : 1; } else { var f = domNode.style.filter; return f != null && f != '' ? parseInt((f.replace('alpha(opacity=', '')).replace(')', '')) / 100 : 1; } }; } var pxToNum; var GetWidthFromPxString; var GetCurrentEltStyle; var GetCurrentEltStyleByNames; var GetOpacity; var SetOpacity; var HasCssClass; var AddCssClassToElement; var RemoveCssClassFromElement; var getCurrentEltStyleByNames; var DOM; function DOM_module_def() { DOM.rightToLeft = document.documentElement.dir == "rtl"; DOM.cancelDefault = DOM_cancelDefault; DOM.AbsLeft = DOM_AbsLeft; DOM.AbsTop = DOM_AbsTop; DOM.CancelEvent = DOM_CancelEvent; DOM.GetElementsByName = DOM_GetElementsByName; DOM.GetEventCoords = DOM_GetEventCoords; DOM.GetEventSrcElement = DOM_GetEventSrcElement; DOM.GetInnerText = DOM_GetInnerText; DOM.GetParentLinkFromEvent = DOM_GetParentLinkFromEvent; DOM.GetSelectedElement = DOM_GetSelectedElement; DOM.PreventDefaultNavigation = DOM_PreventDefaultNavigation; DOM.SetEvent = DOM_SetEvent; DOM.AddEventHandler = DOM_AddEventHandler; DOM.RemoveEventHandler = DOM_RemoveEventHandler; DOM.EnsureElementIsInViewPort = DOM_EnsureElementIsInViewPort; function DOM_cancelDefault(evt) { if (typeof evt == "undefined" || evt == null) { evt = window.event; } if (!(typeof evt == "undefined" || evt == null)) { if (typeof evt.stopPropagation == "function") evt.stopPropagation(); else evt.cancelBubble = true; if (typeof evt.preventDefault == "function") evt.preventDefault(); else evt.returnValue = false; } return false; } function DOM_CancelEvent(e) { e.cancelBubble = true; if (Boolean(e.preventDefault)) e.preventDefault(); e.returnValue = false; return false; } function DOM_GetElementsByName(str) { var ret = document.getElementsByName(str); if (ret.length == 0 && Boolean(XMLHttpRequest)) { ret = FFGetElementsById(document, str); } return ret; function FFGetElementsById(doc, tabId) { var rg = []; var ele = doc.getElementById(tabId); while (ele != null) { rg.push(ele); ele.id = ""; ele = doc.getElementById(tabId); } var i; for (i = 0; i < rg.length; i++) { rg[i].id = tabId; } return rg; } } function DOM_GetEventSrcElement(e) { if (e.target != null) { return e.target; } else if (typeof e.srcElement != 'undefined') { return e.srcElement; } else { ; return null; } } function DOM_GetParentLinkFromEvent(e) { if (e == null) e = window.event; var srcElement = DOM.GetEventSrcElement(e); var anchorElement = DOM_GetSelectedElement(srcElement, "A", "a"); if (anchorElement !== null && anchorElement.tagName != null && anchorElement.tagName.toUpperCase() === "A") return anchorElement; else return null; } function DOM_GetSelectedElement(elem, tagName, tagAlt) { while (elem != null && elem.tagName != tagName && (tagAlt == null || elem.tagName != tagAlt)) elem = elem.parentNode; return elem; } function DOM_GetInnerText(elem) { if (typeof elem.textContent !== "undefined" && elem.textContent !== null) { return elem.textContent; } else if (typeof elem.innerText !== "undefined") { return elem.innerText; } return undefined; } function DOM_PreventDefaultNavigation(evt) { if (typeof evt == "undefined" || evt == null) { evt = window.event; } if (!(typeof evt == "undefined" || evt == null)) { if (evt.preventDefault == null) evt.returnValue = false; else evt.preventDefault(); } } function DOM_Abs(obj, propName) { var x = obj[propName]; var p = obj.offsetParent; while (p != null && p.tagName != "BODY") { x += p[propName]; p = p.offsetParent; } if (p != null) x += p[propName]; return x; } function DOM_AbsLeft(obj) { return DOM_Abs(obj, "offsetLeft"); } function DOM_AbsTop(obj) { return DOM_Abs(obj, "offsetTop"); } function DOM_GetEventCoords(ev) { var x, y; if ("undefined" !== typeof ev.pageX && "undefined" !== typeof ev.pageY) { x = ev.pageX; y = ev.pageY; } else { x = ev.clientX; y = ev.clientY; if ("undefined" !== typeof document.body && null !== document.body) { x += document.body.scrollLeft; y += document.body.scrollTop; } if ("undefined" !== typeof document.documentElement && null !== document.documentElement) { x += document.documentElement.scrollLeft; y += document.documentElement.scrollTop; } } return { x: x, y: y }; } function DOM_SetEvent(eventName, eventFunc, el) { if (!Boolean(el)) el = window; if (typeof eventFunc == 'string') eventFunc = new Function(eventFunc); el['on' + eventName] = eventFunc; } function DOM_AddEventHandler(ele, strEvt, func, useCapture) { if (Boolean(ele.addEventListener)) { useCapture = typeof useCapture != "undefined" && useCapture != null ? useCapture : false; ele.addEventListener(strEvt.substr(2), func, useCapture); } else if (Boolean(ele.attachEvent)) { ele.attachEvent(strEvt, func); } } function DOM_RemoveEventHandler(ele, strEvt, func, useCapture) { if (Boolean(ele.removeEventListener)) { useCapture = typeof useCapture != "undefined" && useCapture != null ? useCapture : false; ele.removeEventListener(strEvt.substr(2), func, useCapture); } else if (Boolean(ele.detachEvent)) { ele.detachEvent(strEvt, func); } } function DOM_EnsureElementIsInViewPort(ele, padding, widths) { var elementTop = Number(DOM_AbsTop(ele)); var elementLeft = Number(DOM_AbsLeft(ele)); var elementHeight = Number(ele.clientHeight); var elementWidth = Number(ele.clientWidth); var viewPortHeight = Number(document.documentElement.clientHeight); var viewPortWidth = Number(document.documentElement.clientWidth); var newTop = elementTop; var newLeft = elementLeft; if (elementTop + elementHeight > viewPortHeight) { newTop = viewPortHeight - elementHeight - padding; } if (elementLeft < 0) { if (elementWidth + padding < viewPortWidth) newLeft = padding; } else if (elementLeft + elementWidth > viewPortWidth) { if (Boolean(widths)) { for (var i = 0; i < widths.length; i++) { newLeft -= widths[i]; } } else newLeft = viewPortWidth - elementWidth - padding; } if (newTop !== elementTop || newLeft !== elementLeft) { newTop = Math.max(newTop, 0); newLeft = Math.max(newLeft, 0); ele.style.position = "absolute"; ele.style.top = String(newTop) + "px"; ele.style.left = String(newLeft) + "px"; } } } var fRightToLeft; var cancelDefault; var AbsLeft; var AbsTop; var CancelEvent; var GetElementsByName; var GetEventCoords; var GetEventSrcElement; var GetInnerText; var PreventDefaultNavigation; var SetEvent; var Encoding; function Encoding_module_def() { Encoding.EncodeScriptQuote = Encoding_encodeScriptQuote; Encoding.HtmlEncode = Encoding_STSHtmlEncode; Encoding.HtmlEncodeEx = Encoding_STSHtmlEncodeEx; Encoding.HtmlDecode = Encoding_STSHtmlDecode; Encoding.AttrQuote = Encoding_StAttrQuote; Encoding.ScriptEncode = Encoding_STSScriptEncode; Encoding.ScriptEncodeWithQuote = Encoding_STSScriptEncodeWithQuote; Encoding.CanonicalizeUrlEncodingCase = Encoding_CanonicalizeUrlEncodingCase; Encoding.EncodePath = Encoding_encodePath; function Encoding_CanonicalizeUrlEncodingCase(str) { var strOut = ""; var ix; for (ix = 0; ix < str.length; ix++) { var curChar = str.charAt(ix); if (curChar == '%' && ix + 2 < str.length) { strOut += curChar; ix++; strOut += ((str.charAt(ix)).toString()).toUpperCase(); ix++; strOut += ((str.charAt(ix)).toString()).toUpperCase(); } else { strOut += curChar; } } return strOut; } function Encoding_encodeScriptQuote(str) { var strIn = new String(str); var strOut = []; var ix = 0; var max = strIn.length; for (ix = 0; ix < max; ix++) { var ch = strIn.charAt(ix); strOut.push(ch == '\'' ? "%27" : ch); } return strOut.join(''); } function Encoding_STSHtmlEncode(str) { if (null == str) return ""; var strIn = new String(str); var strOut = []; var ix = 0; var max = strIn.length; for (ix = 0; ix < max; ix++) { var ch = strIn.charAt(ix); switch (ch) { case '<': strOut.push("<"); break; case '>': strOut.push(">"); break; case '&': strOut.push("&"); break; case '\"': strOut.push("""); break; case '\'': strOut.push("'"); break; default: strOut.push(ch); break; } } return strOut.join(''); } function Encoding_encodePath(url, encodeHash) { if (null == url) return url; var encodedUrl = encodeURI(url); if (encodeHash) { encodedUrl = encodedUrl.replace(/#/g, "%23"); } return encodedUrl; } function Encoding_STSHtmlEncodeEx(str) { if (null == str) return ""; var strIn = new String(str); var strOut = []; var ix = 0; var max = strIn.length; for (ix = 0; ix < max; ix++) { var ch = strIn.charAt(ix); switch (ch) { case '<': strOut.push("<"); break; case '>': strOut.push(">"); break; case '&': strOut.push("&"); break; case '\"': strOut.push("""); break; case '\'': strOut.push("'"); break; case '#': strOut.push("%23"); break; case '%': strOut.push("%25"); break; default: strOut.push(ch); break; } } return strOut.join(''); } function Encoding_STSHtmlDecode(str) { if (null == str) return ""; var rRegexs = [/\</g, /\>/g, /\"/g, /\'/g, /\:/g, /\{/g, /\}/g, /\&/g]; var rSubtitutes = ["<", ">", "\"", "'", ":", "{", "}", "&"]; var strOut = []; var ix = 0; var len = rRegexs.length; for (ix = 0; ix < len; ix++) { var firstAmpPos = str.indexOf("&"); if (-1 != firstAmpPos) { if (0 < firstAmpPos) { strOut.push(str.substr(0, firstAmpPos)); str = str.substr(firstAmpPos); } str = str.replace(rRegexs[ix], rSubtitutes[ix]); } else { break; } } strOut.push(str); return strOut.join(''); } function Encoding_StAttrQuote(st) { st = st.toString(); st = st.replace(/&/g, '&'); st = st.replace(/\"/g, '"'); st = st.replace(/\r/g, ' '); return '"' + st + '"'; } function Encoding_STSScriptEncode(str) { if (null == str || typeof str == 'undefined') return ""; var strIn = new String(str); var strOut = []; var ix = 0; var max = strIn.length; for (ix = 0; ix < max; ix++) { var charCode = strIn.charCodeAt(ix); if (charCode > 0x0fff) { strOut.push("\\u" + (charCode.toString(16)).toUpperCase()); } else if (charCode > 0x00ff) { strOut.push("\\u0" + (charCode.toString(16)).toUpperCase()); } else if (charCode > 0x007f) { strOut.push("\\u00" + (charCode.toString(16)).toUpperCase()); } else { var c = strIn.charAt(ix); switch (c) { case '\n': strOut.push("\\n"); break; case '\r': strOut.push("\\r"); break; case '\"': strOut.push("\\u0022"); break; case '%': strOut.push("\\u0025"); break; case '&': strOut.push("\\u0026"); break; case '\'': strOut.push("\\u0027"); break; case '(': strOut.push("\\u0028"); break; case ')': strOut.push("\\u0029"); break; case '+': strOut.push("\\u002b"); break; case '/': strOut.push("\\u002f"); break; case '<': strOut.push("\\u003c"); break; case '>': strOut.push("\\u003e"); break; case '\\': strOut.push("\\\\"); break; default: strOut.push(c); } ; } } return strOut.join(''); } function Encoding_STSScriptEncodeWithQuote(str) { return '"' + Encoding_STSScriptEncode(str) + '"'; } } var encodeScriptQuote; var STSHtmlEncode; var STSHtmlEncodeEx; var STSHtmlDecode; var StAttrQuote; var STSScriptEncode; var STSScriptEncodeWithQuote; var CanonicalizeUrlEncodingCase; var EncodePath; var ExpFlighting; function ExpFlighting_module_def() { var c_strUndefined = "undefined"; function IsFlightingAvailable() { var varConfig; return typeof Flighting != c_strUndefined && typeof Flighting.VariantConfiguration != c_strUndefined && typeof Flighting.VariantConfiguration.IsExpFeatureClientEnabled != c_strUndefined; } } var IE8Support; function IE8Support_module_def() { IE8Support.arrayIndexOf = function(array, item, startIdx) { if (typeof Array.prototype.indexOf != "undefined") { return array.indexOf(item, startIdx); } if (typeof item === "undefined") return -1; var l = array.length; if (l !== 0) { startIdx = startIdx - 0; if (isNaN(startIdx)) { startIdx = 0; } else { if (isFinite(startIdx)) { startIdx = startIdx - startIdx % 1; } if (startIdx < 0) { startIdx = Math.max(0, l + startIdx); } } for (var i = startIdx; i < l; i++) { if (typeof array[i] !== "undefined" && array[i] === item) { return i; } } } return -1; }; IE8Support.attachDOMContentLoaded = function(handler) { if (typeof document.addEventListener == 'undefined') { document.onreadystatechange = function() { if (document.readyState == "complete") { handler(); } }; } else { document.addEventListener("DOMContentLoaded", handler, false); } }; IE8Support.getComputedStyle = function(domObj, camelStyleName, dashStyleName) { if (typeof document.defaultView != 'undefined' && typeof document.defaultView.getComputedStyle != 'undefined') { return (document.defaultView.getComputedStyle(domObj, null)).getPropertyValue(dashStyleName); } else { if (camelStyleName == 'width') { return String(domObj.offsetWidth) + "px"; } return domObj.currentStyle[camelStyleName]; } }; IE8Support.stopPropagation = function(evt) { if (typeof evt.stopPropagation == "function") evt.stopPropagation(); else evt.cancelBubble = true; }; IE8Support.getCurrentTarget = function(evt) { if (typeof evt.currentTarget != "undefined") return evt.currentTarget; return evt.srcElement; }; if (typeof Array.isArray == 'undefined') { Array.isArray = function(obj) { return typeof obj == 'object' && obj instanceof Array; }; } if (typeof Object.create == 'undefined') { Object.create = function(proto, properties) { ; function ctr() { } ctr.prototype = proto; return new ctr; }; } if (typeof String.prototype.trim == "undefined") { String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g, ''); }; } } var RequestUtil; function RequestUtil_module_def() { RequestUtil.RequestHeader = RequestHeader; function RequestHeader(header, value) { this.header = header; this.value = value; } RequestUtil.WithLoadedXMLHttpRequest = WithLoadedXMLHttpRequest; function WithLoadedXMLHttpRequest(xhrResultCallback, url, requestHeaders) { var req = new XMLHttpRequest(); req.onreadystatechange = function() { if (req.readyState != 4) return; xhrResultCallback(req); }; req.open("GET", url, true); if (requestHeaders != null) { for (var i = 0; i < requestHeaders.length; i++) { var rh = requestHeaders[i]; req.setRequestHeader(rh.header, rh.value); } } req.send(""); } RequestUtil.WithUrlContents = WithUrlContents; function WithUrlContents(resultCallback, url, requestHeaders) { WithLoadedXMLHttpRequest(CallbackWithUrlContents, url, requestHeaders); function CallbackWithUrlContents(req) { var responseText = null; if (req.status == 200) { responseText = req.responseText; } resultCallback(responseText); } } var _restHeaders = [new RequestHeader("Content-Type", "application/x-www-form-urlencoded"), new RequestHeader("ACCEPT", "application/json; odata = verbose")]; RequestUtil.WithRestValue = WithRestValue; function WithRestValue(resultCallback, url) { WithUrlContents(resultCallback, url, _restHeaders); } } var StringUtil; function StringUtil_module_def() { StringUtil.BuildParam = StringUtil_StBuildParam; StringUtil.IsGuid = StringUtil_IsGuid; if (typeof String.prototype.endsWith == "undefined") { String.prototype.endsWith = function(suffix) { return this.substr(this.length - suffix.length) === suffix; }; } if (typeof String.prototype.startsWith == "undefined") { String.prototype.startsWith = function(prefix) { return this.substr(0, prefix.length) === prefix; }; } function StringUtil_StBuildParam(stPattern) { var re; var i; for (i = 1; i < arguments.length; i++) { re = new RegExp("\\^" + String(i)); stPattern = stPattern.replace(re, arguments[i]); } return stPattern; } StringUtil.ApplyStringTemplate = function() { var a = arguments; if (a.length < 1) throw new Error("arguments"); var str = Array.prototype.shift.call(a); return str.replace(/\{(\d+)\}/g, getReplacementString); function getReplacementString(match, capture) { return a[Number(capture)]; } }; function StringUtil_IsGuid(str) { var regex = /^((\{[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}\})|([0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}))$/i; return regex.test(str); } } var StBuildParam; var TypeUtil; function TypeUtil_module_def() { TypeUtil.IsArray = TypeUtil_IsArray; TypeUtil.IsNullOrUndefined = TypeUtil_IsNullOrUndefined; function TypeUtil_IsArray(input) { return typeof input == 'object' && input instanceof Array; } function TypeUtil_IsNullOrUndefined(value) { return value == null || value == undefined; } } var IsArray; var IsNullOrUndefined; var ObjectUtil; function ObjectUtil_module_def() { ObjectUtil.deepCopy = ObjectUtil_DeepCopy; ObjectUtil.deepCompare = ObjectUtil_DeepCompare; function ObjectUtil_DeepCopy(object) { var refsCopied = []; function copyRecurse(obj) { var result = null; if (Boolean(obj)) { if (obj instanceof Array) { result = []; } else { result = Object.create(Object.getPrototypeOf(obj)); } for (var i in obj) { if (obj.hasOwnProperty(i)) { if (typeof obj[i] === "object") { if (refsCopied.indexOf(obj[i]) !== -1) { throw new Error("Cannot perform DeepCopy() because a circular reference was encountered, object: " + String(obj) + ", property: " + String(i)); } refsCopied.push(obj[i]); result[i] = copyRecurse(obj[i]); refsCopied.pop(); } else { result[i] = obj[i]; } } } } return result; } return copyRecurse(object); } function ObjectUtil_DeepCompare(objA, objB, equivalent) { var refsComparedA = []; var refsComparedB = []; var compare = Boolean(equivalent) ? equivalent : function(a, b) { return a === b; }; function equals(a, b) { if (a === b) { return true; } if (a === null || b === null) { return false; } for (var prop in b) { if (b.hasOwnProperty(prop) && !a.hasOwnProperty(prop)) { return false; } } if (a instanceof Object && b instanceof Object) { for (prop in a) { if (typeof a[prop] === "function" || !a.hasOwnProperty(prop)) { continue; } if (!b.hasOwnProperty(prop)) { return false; } if (!Boolean(compare(a[prop], b[prop]))) { if (typeof a[prop] === "object") { if (refsComparedA.indexOf(a[prop]) !== -1) { throw new Error("Cannot perform DeepCompare() because a circular reference was encountered, object: " + String(a) + ", property: " + String(prop)); } refsComparedA.push(a[prop]); if (refsComparedB.indexOf(b[prop]) !== -1) { throw new Error("Cannot perform DeepCompare() because a circular reference was encountered, object: " + String(b) + ", property: " + String(prop)); } refsComparedB.push(b[prop]); if (!equals(a[prop], b[prop])) { return false; } refsComparedA.pop(); refsComparedB.pop(); } else { return false; } } } } else { return false; } return true; } return equals(objA, objB); } } var URI; var unescapeProperly; var GetAbsoluteUrl; var RemoveParametersFromUrl; var RemoveQueryParameterFromUrl; var RemoveUrlKeyValue; var StURLSetVar2; var ParseMultiColumnValue; var ConvertMultiColumnValueToString; var CompleteDecode; var URI_Encoding; function URI_Encoding_module_def() { function URI_escapeProperly(str, bAsUrl, bForFilterQuery, bForCallback) { var strOut = ""; var strByte; var ix = 0; var strEscaped = " \"%<>\'&"; if (typeof str == "undefined") return ""; for (ix = 0; ix < str.length; ix++) { var charCode = str.charCodeAt(ix); var curChar = str.charAt(ix); if (bAsUrl && (curChar == '#' || curChar == '?')) { strOut += str.substr(ix); break; } if (bForFilterQuery && curChar == '&') { strOut += curChar; continue; } if (charCode <= 0x7f) { if (bForCallback) { strOut += curChar; } else { if (charCode >= 97 && charCode <= 122 || charCode >= 65 && charCode <= 90 || charCode >= 48 && charCode <= 57 || bAsUrl && (charCode >= 32 && charCode <= 95) && strEscaped.indexOf(curChar) < 0) { strOut += curChar; } else if (charCode <= 0x0f) { strOut += "%0" + (charCode.toString(16)).toUpperCase(); } else if (charCode <= 0x7f) { strOut += "%" + (charCode.toString(16)).toUpperCase(); } } } else if (charCode <= 0x07ff) { strByte = 0xc0 | charCode >> 6; strOut += "%" + (strByte.toString(16)).toUpperCase(); strByte = 0x80 | charCode & 0x003f; strOut += "%" + (strByte.toString(16)).toUpperCase(); } else if ((charCode & 0xFC00) != 0xD800) { strByte = 0xe0 | charCode >> 12; strOut += "%" + (strByte.toString(16)).toUpperCase(); strByte = 0x80 | (charCode & 0x0fc0) >> 6; strOut += "%" + (strByte.toString(16)).toUpperCase(); strByte = 0x80 | charCode & 0x003f; strOut += "%" + (strByte.toString(16)).toUpperCase(); } else if (ix < str.length - 1) { charCode = (charCode & 0x03FF) << 10; ix++; var nextCharCode = str.charCodeAt(ix); charCode |= nextCharCode & 0x03FF; charCode += 0x10000; strByte = 0xf0 | charCode >> 18; strOut += "%" + (strByte.toString(16)).toUpperCase(); strByte = 0x80 | (charCode & 0x3f000) >> 12; strOut += "%" + (strByte.toString(16)).toUpperCase(); strByte = 0x80 | (charCode & 0x0fc0) >> 6; strOut += "%" + (strByte.toString(16)).toUpperCase(); strByte = 0x80 | charCode & 0x003f; strOut += "%" + (strByte.toString(16)).toUpperCase(); } } return strOut; } function URI_escapeUrlForCallback(str) { var iPound = str.indexOf("#"); var iQues = str.indexOf("?"); if (iPound > 0 && (iQues == -1 || iPound < iQues)) { var strNew = str.substr(0, iPound); if (iQues > 0) { strNew += str.substr(iQues); } str = strNew; } return URI_escapeProperly(str, true, false, true); } URI_Encoding.encodeURIComponent = URI_escapeProperly; URI_Encoding.escapeUrlForCallback = URI_escapeUrlForCallback; } var escapeUrlForCallback; var escapeProperly; var escapeProperlyCore; var escapeProperlyCoreCore; function PageContextInfo(webServerRelativeUrl, webLanguage, currentLanguage, webUIVersion, pageListId, pageItemId, userId, alertsEnabled, siteServerRelativeUrl, allowSilverlightPrompt, webAbsoluteUrl, siteClientTag, layoutsUrl, tenantAppVersion, siteAbsoluteUrl, themedImageRootPath, themedImageFileNames, clientServerTimeDelta, serverRedirectedUrl, expFeatures) { this.webServerRelativeUrl = webServerRelativeUrl; this.webAbsoluteUrl = webAbsoluteUrl; this.siteAbsoluteUrl = siteAbsoluteUrl; this.layoutsUrl = layoutsUrl; this.webLanguage = webLanguage; this.siteClientTag = siteClientTag; this.currentLanguage = currentLanguage; this.webUIVersion = webUIVersion; this.pageListId = pageListId; this.pageItemId = pageItemId; this.userId = userId; this.alertsEnabled = alertsEnabled; this.siteServerRelativeUrl = siteServerRelativeUrl; this.allowSilverlightPrompt = allowSilverlightPrompt; this.tenantAppVersion = tenantAppVersion; this.themedImageRootPath = themedImageRootPath; this.themedImageFileNames = themedImageFileNames; this.clientServerTimeDelta = clientServerTimeDelta; this.updateFormDigestPageLoaded = new Date(); this.serverRedirectedUrl = serverRedirectedUrl; this.ExpFeatures = expFeatures; } function PageContextInfo_InitializePrototype() { var dynamicNull = null; PageContextInfo.prototype.webServerRelativeUrl = ""; PageContextInfo.prototype.webAbsoluteUrl = ""; PageContextInfo.prototype.siteAbsoluteUrl = ""; PageContextInfo.prototype.serverRequestPath = ""; PageContextInfo.prototype.layoutsUrl = ""; PageContextInfo.prototype.siteClientTag = ""; PageContextInfo.prototype.webLanguage = 0; PageContextInfo.prototype.webTitle = null; PageContextInfo.prototype.webLogoUrl = null; PageContextInfo.prototype.currentCultureName = null; PageContextInfo.prototype.currentUICultureName = null; PageContextInfo.prototype.currentLanguage = 0; PageContextInfo.prototype.crossDomainPhotosEnabled = false; PageContextInfo.prototype.AllowCustomMarkupInCalculatedField = false; PageContextInfo.prototype.CustomMarkupInCalculatedFieldDisabled = true; PageContextInfo.prototype.webUIVersion = 0; PageContextInfo.prototype.pageListId = ""; PageContextInfo.prototype.pageItemId = 0; PageContextInfo.prototype.userId = ""; PageContextInfo.prototype.systemUserKey = ""; PageContextInfo.prototype.alertsEnabled = false; PageContextInfo.prototype.siteServerRelativeUrl = ""; PageContextInfo.prototype.allowSilverlightPrompt = ""; PageContextInfo.prototype.tenantAppVersion = null; PageContextInfo.prototype.themedImageRootPath = null; PageContextInfo.prototype.themedImageFileNames = dynamicNull; PageContextInfo.prototype.clientServerTimeDelta = 0; PageContextInfo.prototype.webTemplate = ""; PageContextInfo.prototype.isSLV = false; PageContextInfo.prototype.userLoginName = ""; PageContextInfo.prototype.supportPoundStorePath = ""; PageContextInfo.prototype.supportPercentStorePath = ""; PageContextInfo.prototype.updateFormDigestPageLoaded = new Date(); PageContextInfo.prototype.showNGSCDialogForSyncOnODB = false; PageContextInfo.prototype.showNGSCDialogForSyncOnTS = false; PageContextInfo.prototype.isSPO = false; PageContextInfo.prototype.serverRedirectedUrl = null; PageContextInfo.prototype.ExpFeatures = []; } var _spPageContextInfo; var Nav; function Nav_module_def() { function AjaxNavigate() { this._list = new Array(0); this._fixLayoutsUrl = function AjaxNavigate$_fixLayoutsUrl(url) { var idxLayouts = url.indexOf("_layouts/"); if (idxLayouts != -1) { var strPostLayouts = url.substr(idxLayouts); var expectedVersionNum = (strPostLayouts.split("/"))[1]; if (expectedVersionNum != null) { if (isNaN(Number(expectedVersionNum))) url = url.replace("_layouts/", "_layouts/15/"); } } return url; }; this.update = function AjaxNavigate$update(url, updateParts, fullNavigate, anchorName) { var oldHash = Nav_AjaxNavigate$_GetWindowLocationHash(window.location.href); var hashObject = {}; var newHash = ""; if (null == url) { if (oldHash != null && oldHash.length != 0) { var parts = (oldHash.substr(1)).split('#'); var partsLength = parts.length; var partPosStart = 0; if ("undefined" != typeof g_MinimalDownload && g_MinimalDownload && partsLength > 0 && parts[0].length > 0 && parts[0][0] == '/') { newHash = parts[0]; partPosStart = 1; } Nav_AjaxNavigate$_parseParams(hashObject, parts, partsLength, partPosStart); } } else { newHash = this._fixLayoutsUrl(url); } if ("undefined" != typeof updateParts) { for (var part in updateParts) { var partValue = updateParts[part]; if (null != partValue && "string" != typeof partValue && "number" != typeof partValue) { throw "Unexpected"; } if (null == partValue) { if (hashObject[part] != null) { delete hashObject[part]; } } else { hashObject[part] = updateParts[part]; } } } if ("undefined" != typeof anchorName && anchorName != null && anchorName != "") newHash += "#" + encodeURIComponent(anchorName); for (part in hashObject) { if (part != "anchorTag") newHash += "#" + part + "=" + encodeURIComponent(hashObject[part]); } if (null != url) { if (typeof _dlgWndTop == 'function' && typeof commonModalDialogClose == 'function') { commonModalDialogClose(0, null); } } var fDeltaManager = "undefined" != typeof asyncDeltaManager && Boolean(asyncDeltaManager) && "undefined" != typeof asyncDeltaManager._handleLocalAnchor && "undefined" != typeof asyncDeltaManager.SetCurrentUrl && "undefined" != typeof asyncDeltaManager._navigate; if ("undefined" != typeof fullNavigate && fullNavigate || !fDeltaManager) { if (newHash.startsWith('#')) { try { window.location.hash = newHash; } catch (ex) { } } else { try { window.location.href = newHash; } catch (ex) { } } } else { if (null == url) { if (fDeltaManager) { if ("undefined" != typeof anchorName && anchorName != null && anchorName != "") asyncDeltaManager._handleLocalAnchor(anchorName); var startPageUrl = Nav_AjaxNavigate$_GetWindowLocationNoHash(window.location.href); var newAction = Nav_GetUrlFromMDSLocation(startPageUrl, Nav_RemoveMDSQueryParametersFromUrl(newHash), true); if (Boolean(newAction)) { asyncDeltaManager._savedFormAction = newAction; } } try { window.location.hash = newHash; } catch (ex) { } } else { if (fDeltaManager) { asyncDeltaManager.SetCurrentUrl(null); asyncDeltaManager._navigate(newHash, anchorName, true); } } } }; this.add_navigate = function AjaxNavigate$add_navigate(handler) { if ('function' != typeof handler) throw "unexpected"; var index = IE8Support.arrayIndexOf(this._list, handler, 0); if (-1 == index) { this._list.push(handler); } }; this.remove_navigate = function AjaxNavigate$remove_navigate(handler) { if ('function' != typeof handler) throw "unexpected"; var index = IE8Support.arrayIndexOf(this._list, handler, 0); if (-1 != index) { this._list.splice(index, 1); } }; this._buildHashBag = function AjaxNavigate$_buildHashBag(hash) { var hashObject = {}; try { if (hash == "" || hash == "#") { hashObject["url"] = "/"; } else if (hash != null && hash.length != 0) { var parts = (hash.substr(1)).split(/#|%23/); var partsLength = parts.length; var partPosStart = 0; if ("undefined" != typeof g_MinimalDownload && g_MinimalDownload && partsLength > 0 && parts[0].length > 0 && parts[0][0] == '/') { hashObject["url"] = parts[0]; partPosStart = 1; } Nav_AjaxNavigate$_parseParams(hashObject, parts, partsLength, partPosStart); } } catch (e) { } ; return hashObject; }; this._raiseNavigate = function AjaxNavigate$_raiseNavigate(sender) { var hashObject = this._buildHashBag(Nav_AjaxNavigate$_GetWindowLocationHash(window.location.href)); var listLen = this._list.length; for (var i = 0, l = listLen; i < l; i++) { this._list[i](sender, hashObject); } }; this._clear = function AjaxNavigate$_clear() { this._list = new Array(0); }; this.submit = function AjaxNavigate$submit(formToSubmit) { if ("undefined" != typeof g_MinimalDownload && g_MinimalDownload && (window.location.pathname.toLowerCase()).endsWith("/_layouts/15/start.aspx") && "undefined" != typeof asyncDeltaManager && "undefined" != typeof asyncDeltaManager._onFormSubmitCore) { asyncDeltaManager._onFormSubmitCore(formToSubmit); } else { formToSubmit.submit(); } }; this.getParam = function AjaxNavigate$_getParam(partName) { var hashObject = this._buildHashBag(Nav_AjaxNavigate$_GetWindowLocationHash(window.location.href)); return hashObject[partName]; }; this.getSavedFormAction = function AjaxNavigate$_getSavedFormAction() { var formAction = null; if ("undefined" != typeof asyncDeltaManager && Boolean(asyncDeltaManager) && "undefined" != typeof asyncDeltaManager._savedFormAction) { formAction = asyncDeltaManager._savedFormAction; if (Boolean(formAction)) { formAction = Nav_AjaxNavigate$_normalizeFormAction(formAction); } } return formAction; }; this.get_href = function AjaxNavigate$get_href() { var ajaxLocation = null; if ((window.location.pathname.toLowerCase()).endsWith("/_layouts/15/start.aspx")) { if ("undefined" != typeof g_MinimalDownload && g_MinimalDownload) { ajaxLocation = this.getSavedFormAction(); } if (!Boolean(ajaxLocation)) { ajaxLocation = Nav_AjaxNavigate$_getAjaxLocationWindow(); } } else { ajaxLocation = window.location.href; } return ajaxLocation; }; this.get_hash = function AjaxNavigate$get_hash() { var ajaxHash = window.location.hash; if ("undefined" != typeof g_MinimalDownload && g_MinimalDownload && (window.location.pathname.toLowerCase()).endsWith("/_layouts/15/start.aspx")) { var hashIndex = ajaxHash.indexOf("#", 1); ajaxHash = hashIndex > 0 ? ajaxHash.substr(hashIndex) : ""; } return ajaxHash; }; this.get_search = function AjaxNavigate$get_search() { var ajaxsearch = ""; if ("undefined" != typeof g_MinimalDownload && g_MinimalDownload && (window.location.pathname.toLowerCase()).endsWith("/_layouts/15/start.aspx")) { var href = this.getSavedFormAction(); if (Boolean(href)) { var startSearch = href.indexOf("?"); if (-1 != startSearch) { ajaxsearch = href.substr(startSearch); } } } else { ajaxsearch = window.location.search; } return ajaxsearch; }; this.convertMDSURLtoRegularURL = function Nav_AjaxNavigate$convertMDSURLtoRegularURL(mdsPath) { var regularUrl = mdsPath; if (mdsPath != null || mdsPath != "") { var startPage = "/_layouts/15/start.aspx"; var idxMdsHash = (mdsPath.toLowerCase()).indexOf(startPage); if (idxMdsHash != -1) { var webUrl = mdsPath.substring(0, idxMdsHash); idxMdsHash += startPage.length; if (mdsPath.length == idxMdsHash) { regularUrl = webUrl; } else if (mdsPath[idxMdsHash] == '#') { idxMdsHash += 1; if (mdsPath.length == idxMdsHash) { regularUrl = webUrl; } else if (mdsPath.length >= idxMdsHash + 2 && mdsPath[idxMdsHash] == '/' && mdsPath[idxMdsHash + 1] == '/') { var idxHttp = mdsPath.indexOf("://"); if (idxHttp != -1) { var idxServerPath = mdsPath.indexOf("/", idxHttp + 3); if (idxServerPath != -1) { var serverPath = mdsPath.substring(0, idxServerPath); var serverRelativeUrl = mdsPath.substring(idxMdsHash + 1); regularUrl = Nav_AjaxNavigate$combineURL(serverPath, serverRelativeUrl); } } } else if (mdsPath.length >= idxMdsHash + 1 && mdsPath[idxMdsHash] == '/') { var webRelativeUrl = mdsPath.substring(idxMdsHash); regularUrl = Nav_AjaxNavigate$combineURL(webUrl, webRelativeUrl); } } } } return regularUrl; }; } function Nav_AjaxNavigate$WantsNewTab(evt) { if ("undefined" != typeof evt.ctrlKey && Boolean(evt.ctrlKey)) { return true; } if ("undefined" != typeof evt.button && 1 == evt.button) { return true; } var parentLink = DOM.GetParentLinkFromEvent(evt); if (parentLink != null) { var linkTarget = parentLink.getAttribute("target"); if (Boolean(linkTarget)) { linkTarget = linkTarget.toUpperCase(); if (linkTarget == "_BLANK" || linkTarget == "_NEW" || linkTarget.charAt(0) != "_") { return true; } } } return false; } function Nav_AjaxNavigate$OnClickHook(evt, topElem) { if (!(evt.returnValue === false || evt.defaultPrevented) && !Nav_AjaxNavigate$WantsNewTab(evt)) { var srcElement = DOM.GetEventSrcElement(evt); var currentElem = srcElement; var anchorClick = false; while (null != currentElem) { if (null != currentElem.tagName && "A" == currentElem.tagName.toUpperCase()) { anchorClick = true; break; } if (currentElem == topElem) break; currentElem = currentElem.parentNode; } if (anchorClick && currentElem.href != null && currentElem.href.length > 0 && currentElem.href != "#" && !/^javascript:/i.test(currentElem.href)) { if (window["OffSwitch"] == null || OffSwitch.IsActive("911A3FDF-0DB6-45AC-BD03-E2FE43E0925B") || Nav.isPageUrlValid(currentElem.href)) { DOM.cancelDefault(evt); Nav.navigate(currentElem.href); return false; } } } return (function(u) { return u; })(); } function Nav_AjaxNavigate$_parseParams(hashObject, parts, partsLength, partPosStart) { var bLocalAnchor = false; for (var partPos = partPosStart; partPos < partsLength; partPos++) { var part = parts[partPos]; if (null == part || 0 == part.length) continue; var eqPos = part.indexOf('='); var key; var value; if (eqPos >= 1) { key = part.substr(0, eqPos); value = part.substr(eqPos + 1); hashObject[key] = URI.decodeURIComponent(value); } else if (eqPos == -1 && !bLocalAnchor) { if (bLocalAnchor) throw "Unexpected"; key = "anchorTag"; value = part; hashObject[key] = URI.decodeURIComponent(value); bLocalAnchor = true; } else { throw "Unexpected"; } } } function Nav_AjaxNavigate$_GetWindowLocationHash(href) { var nHashPos = href.indexOf('#'); nHashPos = nHashPos > 0 ? nHashPos : href.length; return href.substr(nHashPos); } function Nav_AjaxNavigate$_GetWindowLocationNoHash(href) { var nHashPos = href.indexOf('#'); nHashPos = nHashPos > 0 ? nHashPos : href.length; return href.substr(0, nHashPos); } function Nav_RemoveMDSQueryParametersFromUrl(inUrl) { return URI.removeQueryParameter(URI.removeQueryParameter(URI.removeQueryParameter(inUrl, 'AjaxDelta'), 'OrigMaster'), 'isStartPlt1'); } function Nav_GetUrlFromMDSLocation(startPage, relativeMDSLocation, fServerAbsolute) { var anUndefined = (function() { })(); if (startPage == null) return anUndefined; if (relativeMDSLocation == null || relativeMDSLocation.length < 1 || relativeMDSLocation[0] != "/") return anUndefined; var locationWeb = startPage.indexOf("/_layouts/15/start.aspx"); if (-1 == locationWeb) { return anUndefined; } var prefix; if (fServerAbsolute && '/' != startPage[0]) { var startHostName = startPage.indexOf("://"); if (-1 == startHostName) return anUndefined; var firstSlash = startPage.indexOf("/", startHostName + 3); prefix = startPage.substr(firstSlash, locationWeb - firstSlash); } else { prefix = startPage.substr(0, locationWeb); } return prefix + relativeMDSLocation; } function Nav_AjaxNavigate$_UrlFromHashBag(hashObject) { var url = hashObject["url"]; var anchorName = hashObject["anchorTag"]; for (var part in hashObject) { if (part != "anchorTag" && part != "url") url += "#" + part + "=" + encodeURIComponent(hashObject[part]); } if (Boolean(anchorName)) { url += "#" + anchorName; } if (null != url && url.length > 1 && "/" == url[0] && "/" == url[1]) { return url.substr(1); } else { var startPageUrl = Nav_AjaxNavigate$_GetWindowLocationNoHash(window.location.href); return Nav_GetUrlFromMDSLocation(startPageUrl, url, true); } } function Nav_AjaxNavigate$parseHash(hash) { var hashObject = {}; try { if (hash != null && hash.length != 0) { var parts = hash.split('#'); Nav_AjaxNavigate$_parseParams(hashObject, parts, parts.length, 0); } } catch (e) { } ; return hashObject; } function Nav_AjaxNavigate$_normalizeFormAction(formAction) { var tmpForm = document.createElement('form'); tmpForm.action = formAction; return tmpForm.action; } function Nav_AjaxNavigate$_getAjaxLocationWindow() { var ajaxLocation = null; var href = window.location.href; var startPos = (href.toLowerCase()).indexOf("/_layouts/15/start.aspx"); var index1 = href.indexOf("://"); var index2 = href.indexOf("/", index1 + 3); if (-1 == index2) { index2 = href.length; } var hashPos = href.indexOf("#"); if (-1 != hashPos && hashPos + 1 <= href.length && "/" == href[hashPos + 1]) { if (hashPos + 2 <= href.length && "/" == href[hashPos + 2]) { ajaxLocation = href.substr(0, index2) + href.substr(hashPos + 2); } else { ajaxLocation = href.substr(0, startPos) + href.substr(hashPos + 1); } } else { ajaxLocation = href.substr(0, startPos); } return ajaxLocation; } function Nav_AjaxNavigate$combineURL(baseUrlPath, additionalNodes) { if (baseUrlPath.endsWith("/")) { if (additionalNodes.startsWith("/")) additionalNodes = additionalNodes.substring(1); return baseUrlPath + additionalNodes; } else { return additionalNodes.startsWith("/") ? baseUrlPath + additionalNodes : baseUrlPath + "/" + additionalNodes; } } function Nav_AjaxNavigate$isMDSURL(url) { var idxQuery = url.indexOf("?"); if (-1 == idxQuery) { idxQuery = url.length; } var idxHash = url.indexOf("#"); if (-1 == idxHash) { idxHash = url.length; } var idxMin = Math.min(idxQuery, idxHash); url = url.substr(0, idxMin); return (url.toLowerCase()).endsWith("/_layouts/15/start.aspx"); } function Nav_AjaxNavigate$convertRegularURLtoMDSURL(webUrl, fullPath) { if (Nav_AjaxNavigate$isMDSURL(fullPath)) return fullPath; var mdsUrl = null; if (webUrl != null && (fullPath.toLowerCase()).startsWith(webUrl.toLowerCase() + "/")) { var webRelativeUrl = fullPath.substring(webUrl.length + 1); if (webRelativeUrl == null || webRelativeUrl == "") { webRelativeUrl = "/"; } else if ('/' != webRelativeUrl[0]) { webRelativeUrl = "/" + webRelativeUrl; } mdsUrl = Nav_AjaxNavigate$combineURL(webUrl, "/_layouts/15/start.aspx" + "#" + webRelativeUrl); } else { var idxHttp = fullPath.indexOf("://"); if (idxHttp != -1) { var idxServerPath = fullPath.indexOf("/", idxHttp + 3); if (idxServerPath != -1) { var serverPath = fullPath.substring(0, idxServerPath); var serverRelativeUrl = fullPath.substring(idxServerPath); if (serverRelativeUrl == null || serverRelativeUrl == "") { serverRelativeUrl = "/"; } else if ('/' != serverRelativeUrl[0]) { serverRelativeUrl = "/" + serverRelativeUrl; } mdsUrl = Nav_AjaxNavigate$combineURL(serverPath, "/_layouts/15/start.aspx" + "#/" + serverRelativeUrl); } } } return mdsUrl; } var Nav_ajaxNavigate = new AjaxNavigate; Nav.ajaxNavigate = Nav_ajaxNavigate; Nav.combineUrl = Nav_AjaxNavigate$combineURL; Nav.convertRegularURLtoMDSURL = Nav_AjaxNavigate$convertRegularURLtoMDSURL; Nav.isMDSUrl = Nav_AjaxNavigate$isMDSURL; Nav.isPageUrlValid = Nav_IsSTSPageUrlValid; Nav.isPortalTemplatePage = Nav_isPortalTemplatePage; Nav.getAjaxLocationWindow = Nav_AjaxNavigate$_getAjaxLocationWindow; Nav.getSource = Nav_GetSource; Nav.getUrlKeyValue = Nav_GetUrlKeyValue; Nav.getWindowLocationNoHash = Nav_AjaxNavigate$_GetWindowLocationNoHash; Nav.goToHistoryLink = Nav_GoToHistoryLink; Nav.getGoToLinkUrl = Nav_GetGotoLinkUrl; Nav.goToLink = Nav_GoToLink; Nav.goToLinkOrDialogNewWindow = Nav_GoToLinkOrDialogNewWindow; Nav.goToDiscussion = Nav_GoToDiscussion; Nav.onClickHook = Nav_AjaxNavigate$OnClickHook; Nav.pageUrlValidation = Nav_PageUrlValidation; Nav.parseHash = Nav_AjaxNavigate$parseHash; Nav.navigate = Nav_STSNavigate; Nav.removeMDSQueryParametersFromUrl = Nav_RemoveMDSQueryParametersFromUrl; Nav.urlFromHashBag = Nav_AjaxNavigate$_UrlFromHashBag; Nav.wantsNewTab = Nav_AjaxNavigate$WantsNewTab; function Nav_STSNavigate(Url) { Url = URI.getAbsolute(Url); if ((Nav.ajaxNavigate.get_search()).indexOf("IsDlg=1") != -1) { if (Url.indexOf("?") != -1) { if (String(Url.match(RegExp("&$"))) != "&") { Url = Url + "&IsDlg=1"; } else { Url = Url + "IsDlg=1"; } } else { Url = Url + "?IsDlg=1"; } } if (window.frameElement != null || typeof SPUpdatePage === 'undefined' || typeof SPUpdatePage !== 'undefined' && SPUpdatePage(Url)) { if (shouldOpenInTopFrame(Url)) window.top.location.href = Nav.pageUrlValidation(Url); else window.location.href = Nav.pageUrlValidation(Url); } } function shouldOpenInTopFrame(Url) { return Nav_GetUrlKeyValue("OpenInTopFrame") == "1" || Nav_isPortalTemplatePage(Url); } function Nav_isPortalTemplatePage(Url) { if (Nav.getUrlKeyValue("PortalTemplate") == "1" || Nav.getUrlKeyValue("PortalTemplate", Boolean(Url)) == "1" || typeof currentCtx != "undefined" && currentCtx != null && typeof currentCtx.isPortalTemplate != "undefined" && Boolean(currentCtx.isPortalTemplate)) return true; else return false; } function Nav_GetUrlKeyValue(keyName, bNoDecode, url, bCaseInsensitive) { var keyValue = ""; if (url == null) url = Nav.ajaxNavigate.get_href() + ""; var ndx; ndx = url.indexOf("#"); if (ndx >= 0) { url = url.substr(0, ndx); } var urlToSearchKeyIn; if (bCaseInsensitive) { keyName = keyName.toLowerCase(); urlToSearchKeyIn = url.toLowerCase(); } else { urlToSearchKeyIn = url; } ndx = urlToSearchKeyIn.indexOf("&" + keyName + "="); if (ndx == -1) ndx = urlToSearchKeyIn.indexOf("?" + keyName + "="); if (ndx != -1) { var ndx2 = url.indexOf("&", ndx + 1); if (ndx2 == -1) ndx2 = url.length; keyValue = url.substring(ndx + keyName.length + 2, ndx2); } if (bNoDecode) return keyValue; else return URI.decodeURIComponent(keyValue); } function Nav_IsSTSPageUrlValid(url) { return url.substr(0, 4) == "http" || url.substr(0, 1) == "/" || url.indexOf(":") == -1; } function Nav_PageUrlValidation(url, alertString) { if (Nav_IsSTSPageUrlValid(url)) { return url; } else { if (Boolean(alertString)) { alert(alertString); } return ""; } } function Nav_GoToHistoryLink(elm, strVersion) { if (elm.href == null) return; var targetUrl = elm.href; var ch = elm.href.indexOf("?") >= 0 ? "&" : "?"; var srcUrl = ch + "VersionNo=" + strVersion; var srcSourceUrl = Nav.getSource(); if (srcSourceUrl != null && srcSourceUrl != "") srcSourceUrl = "&" + "Source=" + srcSourceUrl; targetUrl = elm.href + srcUrl + srcSourceUrl; if (shouldOpenInTopFrame(targetUrl)) window.top.location.href = Nav.pageUrlValidation(targetUrl); else window.location.href = Nav.pageUrlValidation(targetUrl); } function Nav_GetGotoLinkUrl(elm) { if (elm.href == null) return null; var ch = elm.href.indexOf("?") >= 0 ? "&" : "?"; var srcUrl = Nav.getSource(); if (srcUrl != null && srcUrl != "") srcUrl = ch + "Source=" + srcUrl; var targetUrl = elm.href + srcUrl; return targetUrl; } function Nav_GoToLink(elm) { var targetUrl = Nav_GetGotoLinkUrl(elm); if (targetUrl == null) return; if (elm.target === "_blank") { window.open(targetUrl, "_blank"); return; } var fNavigate = true; if (typeof window.top.SPUpdatePage !== 'undefined') { fNavigate = window.top.SPUpdatePage(targetUrl); } if (fNavigate) { if (shouldOpenInTopFrame(targetUrl)) window.top.location.href = Nav.pageUrlValidation(targetUrl); else window.location.href = Nav.pageUrlValidation(targetUrl); } } function Nav_GoToLinkOrDialogNewWindow(elm) { if (elm.href == null) return; if (Boolean((Nav.ajaxNavigate.get_search()).match(RegExp("[?&]IsDlg=1")))) window.open(elm.href); else Nav_GoToLink(elm); } function Nav_GoToDiscussion(url) { var ch = url.indexOf("?") >= 0 ? "&" : "?"; var srcUrl = Nav.getSource(); if (srcUrl != null && srcUrl != "") url += ch + "TopicsView=" + srcUrl; Nav.navigate(url); } function Nav_GetSource(defaultSource) { if (typeof GetSource2 == "function") { return URI_Encoding.encodeURIComponent(GetSource2(defaultSource, null)); } var source = Nav.getUrlKeyValue("Source"); if (source == "") { if (defaultSource != null && defaultSource != "") source = defaultSource; else source = Nav.ajaxNavigate.get_href(); } return URI_Encoding.encodeURIComponent(Nav.pageUrlValidation(source)); } } var ajaxNavigate; var STSNavigate; var GetUrlKeyValue; var STSPageUrlValidation; var PageUrlValidation; var AjaxNavigate$isMDSURL; var isPortalTemplatePage; var GoToHistoryLink; var GetGotoLinkUrl; var GoToLink; var GoToLinkOrDialogNewWindow; var GoToDiscussion; var GetSource; var RemoveMDSQueryParametersFromUrl; var AjaxNavigate$_GetWindowLocationNoHash; var AjaxNavigate$WantsNewTab; var AjaxNavigate$parseHash; var AjaxNavigate$_UrlFromHashBag; var AjaxNavigate$_getAjaxLocationWindow; var IsSTSPageUrlValid; var AjaxNavigate$OnClickHook; var AjaxNavigate$convertRegularURLtoMDSURL; var AjaxNavigate$convertMDSURLtoRegularURL; var ProfileCache; function ProfileCache_module_def() { ProfileCache.GetCachedProfile = ProfileCache_GetCachedProfile; function ProfileCache_GetCachedProfile() { var objProfile = null; var ls = BrowserStorage.local; if (ls != null) { var strProfileData = ls.getItem(ProfileCache_UserProfileLocalStoreKey()); if (Boolean(strProfileData)) { objProfile = JSON.parse(strProfileData); } } return objProfile; } ProfileCache.UserProfileLocalStoreKey = ProfileCache_UserProfileLocalStoreKey; function ProfileCache_UserProfileLocalStoreKey() { var retVal = "UserProfileStorage"; if (window["_spPageContextInfo"] != null) { retVal += _spPageContextInfo.webServerRelativeUrl; } return retVal; } } var ListModule; function ListModule_module_def() { ListModule.BasePermissions = function() { }; ListModule.BasePermissions.prototype = { ManageLists: undefined, OpenItems: undefined }; ListModule.Context = List_ContextInfo; ListModule.Context.prototype = { AllowGridMode: undefined, BasePermissions: undefined, BaseViewID: undefined, CascadeDeleteWarningMessage: undefined, ContentTypesEnabled: undefined, CurrentSelectedItems: undefined, CurrentUserId: undefined, EnableMinorVersions: undefined, ExternalDataList: undefined, HasRelatedCascadeLists: undefined, HttpPath: undefined, HttpRoot: undefined, RealHttpRoot: undefined, NoScriptEnabled: undefined, LastSelectableRowIdx: undefined, LastSelectedItemIID: undefined, LastRowIndexSelected: undefined, RowFocusTimerID: undefined, ListData: undefined, ListSchema: undefined, ModerationStatus: undefined, mountPointUrl: undefined, PortalUrl: undefined, RecycleBinEnabled: undefined, SelectAllCbx: undefined, SendToLocationName: undefined, SendToLocationUrl: undefined, StateInitDone: undefined, TableCbxFocusHandler: undefined, TableMouseoverHandler: undefined, TotalListItems: undefined, WorkflowsAssociated: undefined, clvp: undefined, ctxId: undefined, ctxType: undefined, dictSel: undefined, displayFormUrl: undefined, editFormUrl: undefined, imagesPath: undefined, inGridMode: undefined, inGridFullRender: undefined, isForceCheckout: undefined, isModerated: undefined, isPortalTemplate: undefined, isVersions: undefined, isWebEditorPreview: undefined, leavingGridMode: false, loadingAsyncData: false, listBaseType: undefined, listName: undefined, listTemplate: undefined, listUrlDir: undefined, newFormUrl: undefined, onRefreshFailed: undefined, overrideDeleteConfirmation: undefined, overrideFilterQstring: undefined, overrideScope: undefined, searchTerm: undefined, recursiveView: undefined, rootFolderForDisplay: undefined, serverUrl: undefined, verEnabled: undefined, view: undefined, queryString: undefined, IsClientRendering: undefined, wpq: undefined, rootFolder: undefined, hasRootFolder: undefined, IsAppWeb: undefined, NewWOPIDocumentEnabled: undefined, NewWOPIDocumentUrl: undefined, NewWOPIDocumentTypes: undefined, AllowCreateFolder: undefined, CanShareLinkForNewDocument: undefined, VisioDrawingCreationEnabled: undefined, noGroupCollapse: undefined, SiteTemplateId: undefined, RealSiteTemplateId: undefined, ExcludeFromOfflineClient: false, onItemSelectionChangedHandlers: undefined, bNoDelete: false, qcb: undefined }; ListModule.Context.Type = { EditMenu: 0, ViewSelector: 1 }; function List_ContextInfo() { this.listBaseType = null; this.listTemplate = null; this.listName = null; this.view = null; this.listUrlDir = null; this.HttpPath = null; this.HttpRoot = null; this.serverUrl = null; this.imagesPath = null; this.PortalUrl = null; this.RecycleBinEnabled = null; this.enteringGridMode = false; this.inGridMode = false; this.isWebEditorPreview = null; this.rootFolderForDisplay = null; this.isPortalTemplate = null; this.isModerated = false; this.recursiveView = false; this.displayFormUrl = null; this.editFormUrl = null; this.newFormUrl = null; this.ctxId = null; this.CurrentUserId = null; this.isForceCheckout = false; this.EnableMinorVersions = false; this.ModerationStatus = 0; this.verEnabled = 0; this.isVersions = 0; this.WorkflowsAssociated = false; this.ExternalDataList = false; this.HasRelatedCascadeLists = 0; this.CascadeDeleteWarningMessage = null; this.ContentTypesEnabled = false; this.SendToLocationName = ""; this.SendToLocationUrl = ""; this.StateInitDone = false; this.TotalListItems = null; this.CurrentSelectedItems = null; this.LastSelectableRowIdx = null; this.SelectAllCbx = null; this.TableCbxFocusHandler = null; this.TableMouseoverHandler = null; this.onItemSelectionChangedHandlers = []; } ListModule.Settings = { SupportsCallouts: false, SupportsDragDrop: false, SupportsRibbon: false, SupportsQCB: false, SupportsUpload: false, SupportsInplHash: false, SupportsAnimation: false, SupportsGrouping: false, SupportsNonCSR: false, SupportsInPlaceEdit: false, SupportsItemDelete: false, SupportsCheckout: false, SupportsPopup: false, SupportsErrorDlg: false, SupportsFileAttach: false, SupportsCopies: false, SupportsModeration: false, SupportsMQuery: false, SupportsRest: false, SupportsDatapipes: false, SupportsAddToOneDrive: false, SupportsAddToOneDriveQCB: false, SupportsTaskListEditMode: false, SupportsPeopleHoverCard: false, SupportsMaintainUserChrome: false, SupportsInfiniteScroll: false, SupportsDragDropAttract: false, SupportsDragDropAttractB: false, SupportsDoclibAccessibility: false, SupportsDoclibQCB: false, SupportsOldDesktopMenus: false, SupportsPolicyTips: false, SupportsRightClickECB: false, SupportsShortcutLink: false, SupportsFileExtensionDefinition: false, SupportsFileExtensionControls: false, SupportsFileHandlerForAllNonOfficeFiles: false, SupportsFileExtensionDataPipe: false, SupportsFileHandlerAddInPicker: false, SupportsFileHandlerFileCreation: false }; } var BasePermissions; var ContextInfo; var CTXTYPE_EDITMENU; var CTXTYPE_VIEWSELECTOR; var List_Util; function List_Util_module_def() { ListModule.Util = {}; ListModule.Util.createViewEditUrl = List_createViewEditUrl; ListModule.Util.createItemPropertiesTitleUrl = List_CreateItemPropertiesTitleUrl; ListModule.Util.clearSelectedItemsDict = List_ClearSelectedItemsDict; ListModule.Util.ctxInitItemState = List_ctxInitItemState; ListModule.Util.getAttributeFromItemTable = List_GetAttributeFromItemTable; ListModule.Util.getSelectedItemsDict = List_GetSelectedItemsDict; ListModule.Util.removeOnlyPagingArgs = List_RemoveOnlyPagingArgs; ListModule.Util.removePagingArgs = List_RemovePagingArgs; ListModule.Util.showAttachmentRows = List_ShowAttachmentRows; ListModule.Util.canUploadFile = List_CanUploadFile; ListModule.Util.addWPQtoId = List_addWPQtoId; ListModule.Util.isDefinedAndNotNullOrEmpty = List_IsDefinedAndNotNullOrEmpty; ListModule.Util.hasEditPermission = List_HasEditPermission; ListModule.Util.makeMountedFolderQueryStrParams = List_MakeMountedFolderQueryStrParams; ListModule.Util.tryAppendMountedFolderQueryStrParams = List_TryAppendMountedFolderQueryStrParams; ListModule.Util.getHostUrl = List_GetHostUrl; ListModule.Util.reconcileQstringFilters = List_ReconcileQstringFilters; ListModule.Util.Qstring = List_QstringStruct; function List_RemoveOnlyPagingArgs(strUrl) { var rePagedFlag = /&*Paged=TRUE/gi; strUrl = strUrl.replace(rePagedFlag, ""); var rePagedPrevFlag = /&*PagedPrev=TRUE/gi; strUrl = strUrl.replace(rePagedPrevFlag, ""); var rePagedArgs = /&p_[^&]*/gi; strUrl = strUrl.replace(rePagedArgs, ""); var rePagedRow = /&PageFirstRow=[^&]*/gi; strUrl = strUrl.replace(rePagedRow, ""); var rePagedLastRow = /&PageLastRow=[^&]*/gi; strUrl = strUrl.replace(rePagedLastRow, ""); return strUrl; } function List_RemovePagingArgs(strUrl) { strUrl = List_RemoveOnlyPagingArgs(strUrl); var reFilter1 = /\?Filter=1&*/gi; strUrl = strUrl.replace(reFilter1, "?"); var reFilter2 = /&Filter=1/gi; strUrl = strUrl.replace(reFilter2, ""); var reOrphanedQMark = /\?$/; strUrl = strUrl.replace(reOrphanedQMark, ""); return strUrl; } function List_GetAttributeFromItemTable(itemTableParam, strAttributeName, strAttributeOldName) { var attrValue = itemTableParam != null ? itemTableParam.getAttribute(strAttributeName) : null; if (attrValue == null && itemTableParam != null && strAttributeOldName != null) attrValue = itemTableParam.getAttribute(strAttributeOldName); return attrValue; } function List_ctxInitItemState(ctxCur) { ctxCur.TotalListItems = 0; ctxCur.CurrentSelectedItems = 0; ctxCur.LastSelectableRowIdx = 0; ctxCur.StateInitDone = true; } function List_ClearSelectedItemsDict(context) { if (context != null) context.dictSel = []; } function List_ShowAttachmentRows() { var elm = document.getElementById('idAttachmentsTable'); var elmAttachmentRow = document.getElementById('idAttachmentsRow'); if (elmAttachmentRow != null) { var uri = new URI(Nav.ajaxNavigate.get_href()); var OnlyIncludeOneField = uri.getQueryParameter('OnlyIncludeOneField'); if (elm == null || elm.rows.length == 0 || Boolean(OnlyIncludeOneField)) elmAttachmentRow.style.display = 'none'; else elmAttachmentRow.style.display = 'table-row'; } } function List_GetSelectedItemsDict(ctxParam) { if (ctxParam != null && ctxParam.dictSel != null) { return ctxParam.dictSel; } return null; } function List_createViewEditUrl(renderCtx, listItem, useEditFormUrl, appendSource) { var titleUrl = []; if (useEditFormUrl) titleUrl.push(renderCtx.editFormUrl); else titleUrl.push(renderCtx.displayFormUrl); titleUrl.push("&ID="); titleUrl.push(listItem.ID); titleUrl.push("&ContentTypeID="); titleUrl.push(listItem.ContentTypeId); if (appendSource) { titleUrl.push("&Source="); titleUrl.push(Nav.getSource()); } return titleUrl.join(''); } function List_CreateItemPropertiesTitleUrl(renderCtx, listItem) { if (renderCtx.inGridMode) { return List_createViewEditUrl(renderCtx, listItem, true, false); } return List_createViewEditUrl(renderCtx, listItem, false, false); } function List_CanUploadFile(renderCtx) { if (typeof SupportsFileUpload == "function" && SupportsFileUpload()) { var listSchema = renderCtx.ListSchema; return Boolean(listSchema) && Boolean(listSchema.IsDocLib) && !BrowserDetection.userAgent.ipad && !BrowserDetection.userAgent.windowsphone; } else { return false; } } function List_addWPQtoId(id, wpq) { if (Boolean(id) && Boolean(wpq)) { if (id.lastIndexOf('-') == id.length - 1) return id + wpq; else return id + '-' + wpq; } else return id; } function List_IsDefinedAndNotNullOrEmpty(obj) { return typeof obj !== 'undefined' && obj !== null && obj !== ''; } function List_HasEditPermission(listItem) { var permMask = String(listItem.PermMask); return (parseInt("0x" + permMask.substring(permMask.length - 1)) & 0x4) != 0; } function List_GetMountedFolderQueryStrKeyValues(includeRemoteFolderId, includeMPPrefix) { var uri = new URI(Nav.ajaxNavigate.get_href()); var remoteSiteId = uri.getQueryParameter('RemoteSiteId'); var ret = []; if (Boolean(remoteSiteId)) { var remoteWebId = uri.getQueryParameter('RemoteWebId'); if (Boolean(remoteWebId)) { var remoteFolderId = null; if (includeRemoteFolderId) { remoteFolderId = uri.getQueryParameter('RemoteFolderId'); } if (StringUtil.IsGuid(remoteSiteId) && StringUtil.IsGuid(remoteWebId) && (!includeRemoteFolderId || Boolean(remoteFolderId) && StringUtil.IsGuid(remoteFolderId))) { ret.push({ k: "RemoteSiteId", v: remoteSiteId }); ret.push({ k: "RemoteWebId", v: remoteWebId }); if (includeRemoteFolderId) { ret.push({ k: "RemoteFolderId", v: remoteFolderId }); } } } } else { var groupSiteUrl = uri.getQueryParameter('GroupSiteUrl'); if (Boolean(groupSiteUrl)) { var groupId = uri.getQueryParameter('GroupId'); if (Boolean(groupId) && StringUtil.IsGuid(groupId)) { ret.push({ k: "GroupSiteUrl", v: groupSiteUrl }); ret.push({ k: "GroupId", v: groupId }); } } } if (ret.length > 0) { if (includeMPPrefix) { var mpPrefix = uri.getQueryParameter('MPPrefix'); if (Boolean(mpPrefix)) { ret.push({ k: "MPPrefix", v: mpPrefix }); ret.push("&MPPrefix="); ret.push(mpPrefix); } } return ret; } return null; } function List_MakeMountedFolderQueryStrParams(includeRemoteFolderId, includeMPPrefix) { var keyValues = List_GetMountedFolderQueryStrKeyValues(includeRemoteFolderId, includeMPPrefix); if (keyValues == null) { return null; } var ret = []; for (var i = 0; i < keyValues.length; i++) { ret.push("&"); ret.push(keyValues[i].k); ret.push("="); ret.push(keyValues[i].v); } return ret.join(""); } function List_TryAppendMountedFolderQueryStrParams(url, includeRemoteFolderId, includeMPPrefix) { var keyValues = List_GetMountedFolderQueryStrKeyValues(includeRemoteFolderId, includeMPPrefix); if (keyValues == null) { return null; } var uri = new URI(url); for (var i = 0; i < keyValues.length; i++) { uri.setQueryParameter(String(keyValues[i].k), String(keyValues[i].v)); } return uri.getString(); } function List_GetHostUrl(httpRoot) { var hostUrl = httpRoot; if (hostUrl.lastIndexOf('/') > hostUrl.indexOf('//') + 1) { hostUrl = hostUrl.substring(0, hostUrl.indexOf('/', hostUrl.indexOf('//') + 2)); } return hostUrl; } function List_QstringStruct(strQuery) { if (strQuery == null) { strQuery = ""; } if (strQuery.indexOf("?") == 0) { strQuery = strQuery.substring(1); } this.nonFilterParams = {}; this.filterParams = {}; var params = strQuery.split("&"); var i; for (i = 0; i < params.length; i++) { var param = params[i]; var keyval = param.split("="); if (keyval.length == 2) { if (keyval[0].search("^Filter") != -1) { var fieldNumber = keyval[0].match(new RegExp("[0-9]*$")); var filter; if (typeof this.filterParams[fieldNumber] != "undefined") { filter = this.filterParams[fieldNumber]; } else { filter = new Object(); this.filterParams[fieldNumber] = filter; } var fieldName = keyval[0].match(new RegExp("^Filter[^0-9]*")); filter[fieldName] = keyval[1]; } else { this.nonFilterParams[keyval[0]] = keyval[1]; } } } } List_QstringStruct.prototype.filterParams = {}; List_QstringStruct.prototype.nonFilterParams = {}; List_QstringStruct.prototype.toArray = List_QstringStructToArray; function List_QstringStructToArray() { var output = []; var key; var keyValuePair; var filterIdx = 1; var filterParams = this.filterParams; var filterParams_length = typeof filterParams.length == "number" ? filterParams.length : 0; for (key in this.filterParams) { var filter = this.filterParams[key]; for (key in filter) { keyValuePair = []; keyValuePair.push(key); keyValuePair.push(filterIdx); keyValuePair.push("="); keyValuePair.push(filter[key]); output.push(keyValuePair.join("")); } filterIdx++; } for (key in this.nonFilterParams) { keyValuePair = []; keyValuePair.push(key); keyValuePair.push("="); keyValuePair.push(this.nonFilterParams[key]); output.push(keyValuePair.join("")); } return output; } List_QstringStruct.prototype.toString = List_QstringStructToString; function List_QstringStructToString() { var output = this.toArray(); return "?" + output.join("&"); } function Diff() { } Diff.prototype = { left: [], right: [] }; List_QstringStruct.Diff = function(strLeft, strRight) { var rgLeft = (new List_QstringStruct(strLeft)).toArray(); var rgRight = (new List_QstringStruct(strRight)).toArray(); var temp = {}; var ret = new Diff; var i; for (i = 0; i < rgLeft.length; i++) { temp[rgLeft[i]] |= 1; } for (i = 0; i < rgRight.length; i++) { temp[rgRight[i]] |= 2; } for (var key in temp) { if (temp[key] == 1) { ret.left.push(key); } else if (temp[key] == 2) { ret.right.push(key); } } return ret; }; function List_ReconcileQstringFilters(strUrl1, strUrl2) { var qUrls = []; qUrls.push(new List_QstringStruct(strUrl1)); qUrls.push(new List_QstringStruct(strUrl2)); var output = []; var i, j; var key; var keyValuePair; for (i = 0; i < qUrls.length; i++) { for (key in qUrls[i].nonFilterParams) { if (i == 0 || typeof qUrls[0].nonFilterParams[key] == 'undefined' && i == 1) { keyValuePair = []; keyValuePair.push(key); keyValuePair.push("="); keyValuePair.push(qUrls[i].nonFilterParams[key]); output.push(keyValuePair.join("")); } } } var filterIdx = 1; var trackEachFilterFieldName = new Object(); for (i = 0; i < qUrls.length; i++) { for (j in qUrls[i].filterParams) { var filter = qUrls[i].filterParams[j]; var filter_FilterField = typeof filter.FilterField == "string" ? filter.FilterField : null; if (filter_FilterField == null) filter_FilterField = typeof filter.FilterFields == "string" ? filter.FilterFields : null; if (filter_FilterField != null && typeof trackEachFilterFieldName[filter_FilterField] == 'undefined') { for (key in filter) { keyValuePair = []; keyValuePair.push(key); keyValuePair.push(filterIdx); keyValuePair.push("="); keyValuePair.push(filter[key]); output.push(keyValuePair.join("")); } filterIdx++; trackEachFilterFieldName[filter.FilterField] = filter; } } } return output.join("&"); } } var ctxInitItemState; var ClearSelectedItemsDict; var CreateItemPropertiesTitleUrl; var GetAttributeFromItemTable; var GetSelectedItemsDict; var RemoveOnlyPagingArgs; var RemovePagingArgs; var ShowAttachmentRows; var CanUploadFile; var addWPQtoId; var isDefinedAndNotNullOrEmpty; var HasEditPermission; var getHostUrl; var ReconcileQstringFilters; var QstringStruct; var SuiteNavCommon; function SuiteNavCommon_module_def() { ; ; ; var c_strUndefined = "undefined"; var key_Date = "SPSuiteLinksDate"; var key_Language = "SPSuiteLinksLanguage"; var key_LinksJson = "SPSuiteLinksJson"; var key_MySiteClientTag = "SPSuiteLinksMySiteClientTag"; var key_MySiteLinks = "SPMySiteLinks"; var key_SuiteNavHeight = "SPSuiteNavHeight"; var key_UserKey = "SPSuiteLinksUserKey"; var key_WorkloadsProvisioning = "SPSuiteLinksWorkProv"; var key_LinksCached = "SPSuiteLinksCached"; function GetPageContextInfoValueOrNull(infoKey) { var retVal = null; var pci; if (typeof _spPageContextInfo !== c_strUndefined && Boolean(pci = _spPageContextInfo) && typeof pci[infoKey] !== c_strUndefined) { retVal = String(pci[infoKey]); } return retVal; } function GetCurrentSiteClientTag() { var numSiteClientTag = parseInt(GetPageContextInfoValueOrNull("siteClientTag")); return numSiteClientTag; } if (typeof GetCurrentUserKey == c_strUndefined) { GetCurrentUserKey = function() { return GetPageContextInfoValueOrNull("systemUserKey"); }; } if (typeof GetCurrentUICultureOrNone == c_strUndefined) { GetCurrentUICultureOrNone = function() { var currentLanguage = GetPageContextInfoValueOrNull("currentUICultureName"); if (!Boolean(currentLanguage)) currentLanguage = "none"; return currentLanguage; }; } var c_mySitePersonalWebTemplate = 21; function OnOwnMySite() { var isOwnMySite = false; var isPersonalSiteTemplate = parseInt(GetPageContextInfoValueOrNull("webTemplate")) == c_mySitePersonalWebTemplate; if (isPersonalSiteTemplate) { var strMySiteLinks; var userProfile = ProfileCache.GetCachedProfile(); if (userProfile != null) { isOwnMySite = Boolean(userProfile.isSelf); } else if (Boolean(strMySiteLinks = BrowserStorage.local.getItem(key_MySiteLinks))) { try { var objMySiteLinks = JSON.parse(strMySiteLinks); var currentWebUrl = GetPageContextInfoValueOrNull("webAbsoluteUrl"); var docsUrl; isOwnMySite = Boolean(currentWebUrl) && objMySiteLinks != null && Boolean(docsUrl = objMySiteLinks.Docs) && docsUrl.indexOf(currentWebUrl) == 0; } catch (exParseMySiteLinks) { } } } return isOwnMySite; } function GetCachedJsonIfValid() { var linksJson = null; var ls = BrowserStorage.local; if (GetCurrentUserKey() == ls.getItem(key_UserKey) && GetCurrentUICultureOrNone() == ls.getItem(key_Language) && (!OnOwnMySite() || GetCurrentSiteClientTag() == parseInt(ls.getItem(key_MySiteClientTag)))) { var cachedLinksJson = ls.getItem(key_LinksJson); if (typeof cachedLinksJson == 'string') { linksJson = cachedLinksJson; } } return linksJson; } if (typeof ExtractSuiteMetadata == c_strUndefined) { ExtractSuiteMetadata = function(navBarDataJson) { var suiteData = navBarDataJson; try { if (typeof suiteData == "string") { suiteData = JSON.parse(navBarDataJson); } } catch (ex) { suiteData = null; } return suiteData; }; } if (typeof ExtractSuiteProperty == c_strUndefined) { ExtractSuiteProperty = function(navBarDataJson, jsonPropName) { try { var suiteData = JSON.parse(navBarDataJson); if (suiteData != null) { return suiteData[jsonPropName]; } } catch (ex) { } return undefined; }; } if (typeof ExtractSuiteVersion == c_strUndefined) { ExtractSuiteVersion = function(navBarDataJson) { var suiteVersion = ExtractSuiteProperty(navBarDataJson, "SPSuiteVersion"); if (typeof suiteVersion == "number") { return suiteVersion; } return -1; }; } if (typeof ExtractIsMobile == c_strUndefined) { ExtractIsMobile = function(navBarDataJson) { var isMobile = ExtractSuiteProperty(navBarDataJson, "SPIsMobile"); if (typeof isMobile == "boolean") { return isMobile; } return false; }; } if (typeof ExtractSuiteLinks == c_strUndefined) { ExtractSuiteLinks = function(navBarDataJson) { var suiteVersion = ExtractSuiteVersion(navBarDataJson); if (suiteVersion != -1) { var navBarData = ExtractSuiteProperty(navBarDataJson, "NavBarData"); return typeof navBarData == "string" ? String(navBarData) : JSON.stringify(navBarData); } return navBarDataJson; }; } if (typeof ExtractSuiteNavBarData == c_strUndefined) { ExtractSuiteNavBarData = function(suiteDataObject) { if (suiteDataObject != null) { var suiteMetadata = ExtractSuiteMetadata(suiteDataObject); return suiteMetadata.NavBarData; } return null; }; } function ExtractNavBarDataFromObject(suiteNavData) { var navBarData = null; if (suiteNavData != null) { navBarData = suiteNavData.NavBarData != null ? suiteNavData.NavBarData : suiteNavData; } return navBarData; } if (typeof GetSuiteLinks == c_strUndefined) { GetSuiteLinks = function(callBackToRetrieveData, callBackToProcessData, suiteVersion, isMobile, forceRetrieveData) { if (typeof suiteVersion != "number") suiteVersion = 1; var bIncludeMetadata = suiteVersion > 1; var linksCacheKey = null; var linksJson = !forceRetrieveData ? GetCachedJsonIfValid() : null; var linksJsonIsStale = false; if (linksJson != null) { var linksDate = Date.parse(String(BrowserStorage.local.getItem(key_Date))); var msUntilDataStale = 24 * 60 * 60 * 1000; var numProvisioning = Number(BrowserStorage.local.getItem(key_WorkloadsProvisioning)); if (numProvisioning > 0) { msUntilDataStale = 10 * 1000; } linksJsonIsStale = !(linksDate > 0) || (new Date()).getTime() - linksDate > msUntilDataStale; if (suiteVersion > 1 && typeof BrowserStorage.session.getItem(key_LinksCached) != 'string') { linksJsonIsStale = true; } } if (typeof SP !== c_strUndefined && typeof SP._yam !== c_strUndefined) { if (!linksJsonIsStale && Boolean(linksJson) && linksJson.indexOf(Boolean(SP._yam) ? "ShellNewsfeed" : "ShellYammer") !== -1) { linksJsonIsStale = true; } } if (linksJson == null) { if (callBackToRetrieveData != null) { callBackToRetrieveData(function(data) { CacheSuiteLinks(data); if (callBackToProcessData != null) callBackToProcessData(bIncludeMetadata ? data : ExtractSuiteLinks(data)); }); } else { if (callBackToProcessData != null) callBackToProcessData(null); } return; } if (suiteVersion != ExtractSuiteVersion(linksJson) || Boolean(isMobile) != ExtractIsMobile(linksJson)) { if (Boolean(callBackToRetrieveData) && (typeof CacheSuiteLinks == c_strUndefined || typeof CacheSuiteLinks._reloadingData != "boolean" || Boolean(CacheSuiteLinks._reloadingData))) { CacheSuiteLinks._reloadingData = true; ClearSuiteLinksCache(); GetSuiteLinks(callBackToRetrieveData, callBackToProcessData, suiteVersion, isMobile); return; } } if (linksJsonIsStale) { if (callBackToRetrieveData != null) { callBackToRetrieveData(function(data) { if (CacheSuiteLinks(data)) { linksJson = data; } if (callBackToProcessData != null && suiteVersion > 1) callBackToProcessData(bIncludeMetadata ? data : ExtractSuiteLinks(data)); }); } } if (callBackToProcessData != null) callBackToProcessData(bIncludeMetadata ? linksJson : ExtractSuiteLinks(linksJson)); }; } function CountWorkloadsProvisioning(linksData) { var numProvisioning = 0; var navBarData = ExtractNavBarDataFromObject(linksData); if (navBarData == null) { return numProvisioning; } var workloadLinks = navBarData.WorkloadLinks; var numWorkloadLinks = workloadLinks != null ? workloadLinks.length : 0; for (var iLink = 0; iLink < numWorkloadLinks; iLink++) { var wLink = workloadLinks[iLink]; if (wLink != null && wLink.Url == null) numProvisioning++; } return numProvisioning; } if (typeof CacheSuiteLinks == c_strUndefined) { CacheSuiteLinks = function(linksJson) { var numWorkloadsProvisioning = 0; CacheSuiteLinks._reloadingData = false; try { var linksData = JSON.parse(linksJson); if (linksData != null && linksData.NavBarData != null && linksData.NavBarData.Dimensions != null) { var topHeight = Number(linksData.NavBarData.Dimensions.Top); if (topHeight > 0) BrowserStorage.local.setItem(key_SuiteNavHeight, String(topHeight) + "px"); } if (linksData != null && linksData.DoNotCache === true) { return false; } numWorkloadsProvisioning = CountWorkloadsProvisioning(linksData); } catch (ex) { return false; } var currentLanguage = GetCurrentUICultureOrNone(); var ls = BrowserStorage.local; ls.setItem(key_LinksJson, linksJson); ls.setItem(key_Language, currentLanguage); ls.setItem(key_Date, new Date()); ls.setItem(key_UserKey, GetCurrentUserKey()); ls.setItem(key_WorkloadsProvisioning, numWorkloadsProvisioning); if (numWorkloadsProvisioning < 1) { ls.removeItem(key_WorkloadsProvisioning); } BrowserStorage.session.setItem(key_LinksCached, true); if (OnOwnMySite()) { ls.setItem(key_MySiteClientTag, GetCurrentSiteClientTag()); } return true; }; } if (typeof ClearSuiteLinksCache == c_strUndefined) { ClearSuiteLinksCache = function(bPreserveMySiteLinks) { var lsKeys = [key_LinksJson, key_Language, key_Date, key_UserKey, key_MySiteClientTag, key_SuiteNavHeight]; if (!bPreserveMySiteLinks) lsKeys.push(key_MySiteLinks); for (var i = 0; i < lsKeys.length; i++) { BrowserStorage.local.removeItem(lsKeys[i]); } BrowserStorage.session.removeItem(key_LinksCached); }; } SuiteNavCommon.GetCurrentUserKey = GetCurrentUserKey; SuiteNavCommon.GetCurrentUICultureOrNone = GetCurrentUICultureOrNone; SuiteNavCommon.ExtractSuiteMetadata = ExtractSuiteMetadata; SuiteNavCommon.ExtractSuiteProperty = ExtractSuiteProperty; SuiteNavCommon.ExtractSuiteVersion = ExtractSuiteVersion; SuiteNavCommon.ExtractIsMobile = ExtractIsMobile; SuiteNavCommon.ExtractSuiteLinks = ExtractSuiteLinks; SuiteNavCommon.ExtractSuiteNavBarData = ExtractSuiteNavBarData; SuiteNavCommon.GetSuiteLinks = GetSuiteLinks; SuiteNavCommon.CacheSuiteLinks = CacheSuiteLinks; SuiteNavCommon.ClearSuiteLinksCache = ClearSuiteLinksCache; } var OnePageUtil; function OnePageUtil_module_def() { OnePageUtil.overrideAddEventListener = function OnePageUtil_overrideAddEventListener(eventTarget) { if (typeof eventTarget.addEventListener != 'undefined' && !eventTarget.onePageOverrideAddEventListenerDone) { if (!Boolean(eventTarget.eventListenerStore)) { eventTarget.eventListenerStore = {}; } var store = eventTarget.eventListenerStore; eventTarget.addEventListenerBase = eventTarget.addEventListener; eventTarget.addEventListener = function(type, listener, useCapture) { eventTarget.addEventListenerBase.apply(this, arguments); if (!Boolean(store[type])) { store[type] = []; } var _eventList = store[type]; for (var index = 0; index != _eventList.length; index++) { if (_eventList[index] === listener) { return; } } _eventList.push(listener); }; eventTarget.onePageOverrideAddEventListenerDone = true; } }; OnePageUtil.overrideRemoveEventListener = function OnePageUtil_overrideRemoveEventListener(eventTarget) { if (typeof eventTarget.removeEventListener != 'undefined' && !eventTarget.onePageOverrideRemoveEventListenerDone) { if (!Boolean(eventTarget.eventListenerStore)) { eventTarget.eventListenerStore = {}; } var store = eventTarget.eventListenerStore; var _eventList = []; eventTarget.removeEventListenerBase = eventTarget.removeEventListener; eventTarget.removeEventListener = function(type, handler, useCapture) { if (handler instanceof Function) { eventTarget.removeEventListenerBase.apply(this, arguments); } if (Boolean(type) && Boolean(store[type])) { _eventList = store[type]; for (var index = 0; index < _eventList.length; index++) { var _handler = _eventList[index]; if (!Boolean(handler)) { eventTarget.removeEventListenerBase(type, _handler); } else if (_handler === handler) { _eventList.splice(index, 1); break; } } if (_eventList.length == 0 || !Boolean(handler)) { delete store[type]; } } else if (!Boolean(type)) { for (var etype in store) { _eventList = store[etype]; for (var idx = 0; idx < _eventList.length; idx++) { eventTarget.removeEventListenerBase(etype, _eventList[idx]); } delete store[etype]; } } }; eventTarget.onePageOverrideRemoveEventListenerDone = true; } }; OnePageUtil.overrideEventListenerFunctions = function OnePageUtil_overrideEventListenerFunctions(eventTarget) { OnePageUtil.overrideAddEventListener(eventTarget); OnePageUtil.overrideRemoveEventListener(eventTarget); }; OnePageUtil.undoOverrideEventListenerFunctions = function OnePageUtil_undoOverrideEventListenerFunctions(eventTarget) { eventTarget.addEventListener = eventTarget.addEventListenerBase; delete eventTarget.addEventListenerBase; eventTarget.removeEventListener = eventTarget.removeEventListenerBase; delete eventTarget.removeEventListenerBase; delete eventTarget.eventListenerStore; delete eventTarget.onePageOverrideRemoveEventListenerDone; }; OnePageUtil.timerManagerClass = function timerManagerClass() { var intervals = []; var timeouts = []; var setIntervalBase; var clearIntervalBase; var setTimeoutBase; var clearTimeoutBase; var timerOverrideDone = false; var arrayIndexOf = function(targetArray, item) { if (typeof targetArray.indexOf != 'undefined') { return targetArray.indexOf(item); } if (typeof Array.indexOf != 'undefined') { return Array.indexOf(targetArray, item); } return undefined; }; this.overrideTimer = function() { if (!timerOverrideDone) { setIntervalBase = window.setInterval; clearIntervalBase = window.clearInterval; setTimeoutBase = window.setTimeout; clearTimeoutBase = window.clearTimeout; window.setInterval = function() { var retVal; if ("function" == typeof setIntervalBase) { retVal = setIntervalBase.apply(window, arguments); } else { retVal = setIntervalBase(arguments[0], arguments[1]); } if ('undefined' != typeof retVal) { intervals.push(retVal); } return retVal; }; window.clearInterval = function() { var id = arguments[0]; if ("function" == typeof clearIntervalBase) { clearIntervalBase.apply(window, arguments); } else { clearIntervalBase(id); } if (typeof id != 'undefined') { var idx = arrayIndexOf(intervals, id); if (-1 != idx) { intervals.splice(idx, 1); } } }; window.setTimeout = function() { var retVal; if (arguments.length > 1 && 'function' == typeof arguments[0]) { var fn = arguments[0]; arguments[0] = function() { var argumentsArray1 = [].slice.call(arguments); fn.apply(null, argumentsArray1); if ('undefined' != typeof retVal) { var idx = arrayIndexOf(timeouts, retVal); if (-1 != idx) { timeouts.splice(idx, 1); } } }; } if ('function' == typeof setTimeoutBase) { var argumentsArray = [].slice.call(arguments); retVal = setTimeoutBase.apply(window, argumentsArray); } else { retVal = setTimeoutBase(arguments[0], arguments[1]); } if ('undefined' != typeof retVal) { timeouts.push(retVal); } return retVal; }; window.clearTimeout = function() { var id = arguments[0]; if ('function' == typeof clearTimeoutBase) { clearTimeoutBase.apply(window, arguments); } else { clearTimeoutBase(id); } if (typeof id != 'undefined') { var idx = arrayIndexOf(timeouts, id); if (-1 != idx) { timeouts.splice(idx, 1); } } }; timerOverrideDone = true; } }; this.clearAllIntervals = function clearAllIntervals() { while (intervals.length > 0) { clearIntervalBase(intervals[0]); intervals.splice(0, 1); } }; this.clearAllTimeouts = function clearAllTimeouts() { while (timeouts.length > 0) { clearTimeoutBase(timeouts[0]); timeouts.splice(0, 1); } }; this.undoOverrideTimer = function undoOverrideTimer() { window.setInterval = setIntervalBase; window.clearInterval = clearIntervalBase; window.setTimeout = setTimeoutBase; window.clearTimeout = clearTimeoutBase; }; if (!Boolean(arguments.callee['_singletonInstance'])) { arguments.callee._singletonInstance = this; } return arguments.callee._singletonInstance; }; var _timerManager = null; OnePageUtil.GetTimerManager = function() { if (null == _timerManager) _timerManager = new OnePageUtil.timerManagerClass(); return _timerManager; }; } var Flighting; var currentCtx; var ctx; var itemTable; var g_supportFiles; var g_MDNav; var ULS; function ULSObject() { } function ULSTrim(str) { str = str.replace(/^\s*/, ""); str = str.replace(/\s*$/, ""); return str; } function ULSEncodeXML(str) { str = String(str); str = str.replace(/&/g, "&"); str = str.replace(//g, ">"); str = str.replace(/'/g, "'"); str = str.replace(/"/g, """); return str; } function ULSStripPII(url) { if (url.indexOf('?') != -1) url = url.substring(0, url.indexOf('?')); if (Boolean(window.location)) url = url.replace(window.location.hostname, "[server]"); return url; } function ULSGetFunction(fn, depth, topfn) { var sF = fn.toString(); var sFnNm = ULSTrim(sF.substring(0, sF.indexOf("{"))); if (sFnNm.indexOf("function") == 0) sFnNm = ULSTrim(sFnNm.substring(8)); var s = '= 0) s += 'depth="' + depth.toString() + '" '; s += 'signature="' + sFnNm + '">'; if (depth == 0 || sFnNm.indexOf("anonymous") == 0 || sFnNm.indexOf("(") == 0) s += '\n\n'; s += ''; return s; } function ULSGetMetadataFromFrame(oCS) { var sFunctionText = oCS.toString(); var iOpeningBrace = sFunctionText.indexOf("{"); if (iOpeningBrace == -1) return false; sFunctionText = sFunctionText.substr(iOpeningBrace + 1); var iFirstStatement = sFunctionText.search(/[^\s]/); if (iFirstStatement == -1) return false; var reMatch = sFunctionText.match(/ULS[^\s;]*:/); if (reMatch == null || typeof reMatch.index != "undefined" && reMatch.index != iFirstStatement) return false; var sLabelName = reMatch[0]; sLabelName = sLabelName.substr(0, sLabelName.length - 1); try { var o = eval(sLabelName + "()"); if (typeof o == "undefined" || typeof o.ULSTeamName == "undefined" || typeof o.ULSFileName == "undefined") return false; ULS.teamName = o.ULSTeamName; ULS.originalFile = o.ULSFileName; return true; } catch (e) { return false; } } function ULSGetCallstack(callerArg) { var stack = ""; try { if (Boolean(callerArg)) { var fFoundMetadata = false; var oCS = callerArg; var depth = 0; while (Boolean(oCS) && depth < 20) { if (!fFoundMetadata) fFoundMetadata = ULSGetMetadataFromFrame(oCS); stack += ULSGetFunction(oCS, depth, callerArg) + '\n'; oCS = oCS.caller; depth++; } } } catch (e) { } return stack; } function ULSGetClientInfo() { var client = ""; try { var lang = navigator.browserLanguage; if (!Boolean(lang)) lang = navigator.language; if (!Boolean(lang)) lang = navigator.systemLanguage; var agt = navigator.userAgent.toLowerCase(); var app = navigator.appName; var ver = parseFloat(navigator.appVersion); if (agt.indexOf("msie ") != -1) ver = parseFloat(agt.substring(agt.indexOf("msie ") + 5)); if (agt.indexOf("firefox/") != -1) { app = "Firefox"; ver = parseFloat(agt.substring(agt.indexOf("firefox/") + 8)); } client += '\n'; client += '' + ULSEncodeXML(navigator.userAgent) + '\n'; if (Boolean(lang)) client += '' + ULSEncodeXML(lang) + '\n'; if (Boolean(document.referrer)) { var ref = ULSStripPII(document.referrer); client += '' + ULSEncodeXML(ref) + '\n'; } if (Boolean(window.location)) { var loc = ULSStripPII(window.location.toString()); client += '' + ULSEncodeXML(loc) + '\n'; } if (Boolean(ULS.Correlation)) client += '' + ULSEncodeXML(ULS.Correlation) + '\n'; } catch (e) { } return client; } function ULSHandleWebServiceResponse() { var req = ULS.request; if (req.readyState == 4 && req.status == 200) { ULSFinishErrorHandling(); } if ((req.readyState == 0 || req.readyState == 4) && req.status > 200) { ULSFinishErrorHandling(); } } function ULSFinishErrorHandling() { ULS.message = null; } function ULSGetWebServiceUrl() { var url = ""; var idx1 = document.URL.indexOf('://'); if (idx1 > 0) { var idx2 = document.URL.indexOf('/', idx1 + 3); if (idx2 > 0) url = document.URL.substring(0, idx2); else url = document.URL; } if (url.charAt(url.length - 1) != '/') url += '/'; url += '_vti_bin/diagnostics.asmx'; return url; } function ULSUploadReport(msg, correlation, url) { if (Boolean(ULS) && ULS.enable) { ULS.message = msg; if (url.indexOf('?') != -1) url = url.substr(0, url.indexOf('?')); ULS.file = url.substr(url.lastIndexOf('/') + 1); ULS.line = 0; ULS.WebServiceNS = "http://schemas.microsoft.com/sharepoint/diagnostics/"; ULS.Correlation = correlation; ULS.teamName = ''; ULS.originalFile = ''; ULS.callStack = ''; ULS.clientInfo = '\n' + ULSGetClientInfo() + ''; ULSSendReport(false); } } function ULSSendReport(async) { ULS.request = new XMLHttpRequest(); ULS.request.onreadystatechange = ULSHandleWebServiceResponse; ULS.request.open("POST", ULSGetWebServiceUrl(), async); ULS.request.setRequestHeader("Content-Type", "text/xml; charset=utf-8"); ULS.request.setRequestHeader("SOAPAction", ULS.WebServiceNS + "SendClientScriptErrorReport"); ULS.request.send('' + '' + '' + '' + '' + ULSEncodeXML(ULS.message) + '' + '' + ULSEncodeXML(ULS.file) + '' + '' + String(ULS.line) + '' + '' + ULSEncodeXML(ULS.callStack) + '' + '' + ULSEncodeXML(ULS.clientInfo) + '' + '' + ULSEncodeXML(ULS.teamName) + '' + '' + ULSEncodeXML(ULS.originalFile) + '' + '' + '' + ''); } function ULSSendExceptionImpl(msg, url, line, oCaller) { if (Boolean(ULS) && ULS.enable) { ULS.enable = false; window.onerror = ULS.OriginalOnError; ULS.WebServiceNS = "http://schemas.microsoft.com/sharepoint/diagnostics/"; try { ULS.message = msg; if (url.indexOf('?') != -1) url = url.substr(0, url.indexOf('?')); ULS.file = url.substr(url.lastIndexOf('/') + 1); ULS.line = line; ULS.teamName = ""; ULS.originalFile = ""; ULS.callStack = '\n' + ULSGetCallstack(oCaller) + ''; ULS.clientInfo = '\n' + ULSGetClientInfo() + ''; ULSSendReport(true); } catch (e) { } } if (Boolean(ULS) && Boolean(ULS.OriginalOnError)) return ULS.OriginalOnError(msg, url, String(line)); else return false; } function ULSOnError(msg, url, line) { return ULSSendExceptionImpl(msg, url, line, ULSOnError.caller); } function ULSSendException(ex) { var message = ex.message; if (typeof message == "undefined") message = ex.toString(); ULSSendExceptionImpl(message, location.href, 0, ULSSendException.caller); } var ULSCat; function GetXMLHttpRequestObject() { return new XMLHttpRequest(); } function insertAdjacentElement(obj, where, parsedNode) { if (typeof obj.insertAdjacentElement != "undefined" && Boolean(obj.insertAdjacentElement)) return obj.insertAdjacentElement(where, parsedNode); switch (where) { case 'beforeBegin': return obj.parentNode.insertBefore(parsedNode, obj); case 'afterBegin': return obj.insertBefore(parsedNode, obj.firstChild); case 'beforeEnd': return obj.appendChild(parsedNode); case 'afterEnd': if (Boolean(obj.nextSibling)) return obj.parentNode.insertBefore(parsedNode, obj.nextSibling); else return obj.parentNode.appendChild(parsedNode); } return null; } function insertAdjacentHTML(obj, where, htmlStr) { if (typeof obj.insertAdjacentHTML != "undefined" && Boolean(obj.insertAdjacentHTML)) return obj.insertAdjacentHTML(where, htmlStr); if (typeof obj.ownerDocument.createRange != "undefined") { var r = obj.ownerDocument.createRange(); if (typeof r.setStartBefore != "undefined" && typeof r.createContextualFragment != "undefined") { r.setStartBefore(obj); var parsedHTML = r.createContextualFragment(htmlStr); return insertAdjacentElement(obj, where, parsedHTML); } } return null; } function insertAdjacentText(obj, where, txtStr) { if (typeof obj.insertAdjacentText != "undefined" && Boolean(obj.insertAdjacentText)) return obj.insertAdjacentText(where, txtStr); var parsedText = document.createTextNode(txtStr); return insertAdjacentElement(obj, where, parsedText); } function contains(obj, elem) { var isParent = false; do { isParent = obj == elem; if (isParent) break; elem = elem.parentNode; } while (elem != null); return isParent; } function getFirstElementByName(obj, name2) { return getFirstElementByProperty(obj, 'name', name2); } function getFirstElementByProperty(obj, propName, propValue) { if (propName == null || propValue == null || propName == '' || propValue == '') return null; if (obj[propName] == propValue) return obj; var Child = obj.firstChild; while (Boolean(Child) && typeof Child != 'undefined') { var ret = getFirstElementByProperty(Child, propName, propValue); if (Boolean(ret)) return ret; Child = Child.nextSibling; } return null; } function documentGetElementsByName(name2) { if (!BrowserDetection.userAgent.ie && Boolean(document.getElementsByName)) return document.getElementsByName(name2); var matched = []; var allEls = document.getElementsByTagName("*"), l = allEls.length; for (var i = 0; i < l; i++) { var elem = allEls[i]; if (elem.name == name2 || typeof elem.getAttribute != "unknown" && Boolean(elem.getAttribute) && elem.getAttribute("name") == name2) matched.push(elem); } return matched; } function getFirstChild(el) { var node = el.firstChild; while (Boolean(node) && node.nodeType == 3) node = node.nextSibling; return node; } function byid(id) { return document.getElementById(id); } function newE(tag) { return document.createElement(tag); } function wpf() { if (typeof window.MSOWebPartPageFormName != "undefined") return document.forms[window.MSOWebPartPageFormName]; return null; } function startReplacement() { } function AttachEvent(eventName, eventFunc, el) { if (!el) el = window; if (eventName == 'domLoad') { eventName = typeof el.addEventListener != 'undefined' && el.addEventListener && BrowserDetection.userAgent.nav ? 'DOMContentLoaded' : 'load'; } else if (eventName != 'undefined' && eventName != null && eventName.indexOf("touch") == 0 && BrowserDetection.userAgent.msTouch) { switch (eventName) { case "touchstart": eventName = "MSPointerDown"; break; case "touchmove": eventName = "MSPointerMove"; break; case "touchend": eventName = "MSPointerUp"; break; } } if (typeof eventFunc == 'string') eventFunc = new Function(eventFunc); if (typeof el.addEventListener != 'undefined' && el.addEventListener) el.addEventListener(eventName, eventFunc, false); else if (typeof el.attachEvent != 'undefined') el.attachEvent('on' + eventName, eventFunc); } function DetachEvent(eventName, eventFunc, el) { if (!el) el = window; if (eventName == 'domLoad') { eventName = typeof el.removeEventListener != 'undefined' && el.removeEventListener && BrowserDetection.userAgent.nav ? 'DOMContentLoaded' : 'load'; } if (typeof eventFunc == 'string') eventFunc = new Function(eventFunc); if (typeof el.removeEventListener != 'undefined' && el.removeEventListener) el.removeEventListener(eventName, eventFunc, false); else if (typeof el.detachEvent != 'undefined') el.detachEvent('on' + eventName, eventFunc); } function GetEventKeyCode(e) { if (BrowserDetection.userAgent.nav) return e.which; else return e.keyCode; } var g_cde; function GetCachedElement(id) { var ret = null; if (!Boolean(ret = g_cde[id])) { ret = document.getElementById(id); g_cde[id] = ret; } return ret; } function $dg(x) { if (!(x in window)) window[x] = undefined; } function SelectRibbonTab(tabId, force) { var rib; try { rib = (SP.Ribbon.PageManager.get_instance()).get_ribbon(); } catch (e) { } if (!Boolean(rib)) { if (typeof _ribbonStartInit != "undefined") _ribbonStartInit(tabId, false, null); } else if (force || rib.get_selectedTabId() == "Ribbon.Read") { rib.selectTabById(tabId); } } function FV4UI() { return typeof _fV4UI != "undefined" && _fV4UI; } function EEDecodeSpecialChars(str) { var decodedStr = str.replace(/"/g, "\""); decodedStr = decodedStr.replace(/>/g, ">"); decodedStr = decodedStr.replace(/</g, "<"); decodedStr = decodedStr.replace(/'/g, "'"); decodedStr = decodedStr.replace(/&/g, "&"); return decodedStr; } function SP_JSONParse(jsonText) { var needsSecondPass = false; var retval = JSON.parse(jsonText, ReviveSerializedDate); if (needsSecondPass) { traverse(retval, ReviveSerializedDate); } return retval; function traverse(obj, func) { if (obj !== null && typeof obj === 'object') { for (var key in obj) { if (obj.hasOwnProperty(key)) { traverse(obj[key], func); obj[key] = func(key, obj[key]); } } } } function ReviveSerializedDate(key, value) { DetectJSONParseReviverBug(key, value); if (typeof value === 'string') { var regExResult = /^\/Date\((-?\d+\))\/$/g.exec(value); if (regExResult !== null) { var ticks = parseInt(regExResult[1]); return new Date(ticks); } } return value; } function DetectJSONParseReviverBug(key, value) { needsSecondPass = needsSecondPass || value === void 0 && /^\d+$/.test(key); } } function DeferCall() { if (arguments.length == 0) return null; var args = arguments; var fn = null; if (browseris.ie5up || browseris.nav6up) { eval("if (typeof(" + args[0] + ") == 'function') { fn = " + args[0] + "; }"); } if (fn == null) return null; if (args.length == 1) return fn(); else if (args.length == 2) return fn(args[1]); else if (args.length == 3) return fn(args[1], args[2]); else if (args.length == 4) return fn(args[1], args[2], args[3]); else if (args.length == 5) return fn(args[1], args[2], args[3], args[4]); else if (args.length == 6) return fn(args[1], args[2], args[3], args[4], args[5]); else if (args.length == 7) return fn(args[1], args[2], args[3], args[4], args[5], args[6]); else if (args.length == 8) return fn(args[1], args[2], args[3], args[4], args[5], args[6], args[7]); else if (args.length == 9) return fn(args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8]); else if (args.length == 10) return fn(args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8], args[9]); else { alert(Strings.STS.L_TooManyDefers_Text); } return null; } function CollectRUMNonMDS() { var registerFunc = function() { var rWsa = GetRUMWSA(); if (IsNullOrUndefined(rWsa)) return; rWsa.CollectRUMDataForNonMDS(); }; var rumSod = _v_dictSod['sp.core.js']; if (IsNullOrUndefined(rumSod)) { return; } EnsureScriptFunc('SP.core.js', "SP.RUMLogger", registerFunc); EnsureScriptFunc("sp.core.js", "SP.SlapiInternal", function() { var perfLogger = IsNullOrUndefined(PerformanceLogger) ? null : PerformanceLogger.GetLogger(); if (!IsNullOrUndefined(perfLogger)) { perfLogger.CollectW3CPerfTimings(); var pageTransitionType = 0; if (SP.ScriptUtility.isNullOrEmptyString(document.referrer)) { pageTransitionType = SP.PageTransitionType.nonMdsToNonMds; } else { if (document.referrer.indexOf('/start.aspx') !== -1) { pageTransitionType = SP.PageTransitionType.mdsToNonMds; } else { pageTransitionType = SP.PageTransitionType.nonMdsToNonMds; } } perfLogger.WritePageTransitionType(pageTransitionType); if (typeof g_duration != "undefined" && typeof g_iisLatency != "undefined") { perfLogger.WriteServerSideLatency(g_duration, g_iisLatency); } } }); } var LegalUrlChars; var poundIndex; var percentIndex; function SupportPound() { return typeof _spPageContextInfo != 'undefined' && typeof _spPageContextInfo.supportPoundStorePath == 'boolean' && Boolean(_spPageContextInfo.supportPoundStorePath); } function SupportPercent() { return typeof _spPageContextInfo != 'undefined' && typeof _spPageContextInfo.supportPercentStorePath == 'boolean' && Boolean(_spPageContextInfo.supportPercentStorePath); } function AdmBuildParam(stPattern) { var re; var i; for (i = 1; i < arguments.length; i++) { re = new RegExp("\\^" + String(i)); stPattern = stPattern.replace(re, arguments[i]); } return stPattern; } function IndexOfIllegalCharInUrlLeafName(strLeafName, noPoundPercent) { var supportPound = SupportPound() && !noPoundPercent; var supportPercent = SupportPercent() && !noPoundPercent; for (var i = 0; i < strLeafName.length; i++) { var ch = strLeafName.charCodeAt(i); if (strLeafName.charAt(i) == '.' && i == strLeafName.length - 1) return i; if (ch < 160 && (strLeafName.charAt(i) == '/' || !LegalUrlChars[ch] && !(ch == poundIndex && supportPound) && !(ch == percentIndex && supportPercent))) return i; } return -1; } function IndexOfIllegalCharInUrlPath(strPath) { var supportPound = SupportPound(); var supportPercent = SupportPercent(); for (var i = 0; i < strPath.length; i++) { var ch = strPath.charCodeAt(i); if (ch < 160 && (!LegalUrlChars[ch] && !(ch == poundIndex && supportPound) && !(ch == percentIndex && supportPercent))) return i; } return -1; } function UrlContainsIllegalStrings(strPath) { if (strPath.indexOf("//") >= 0 || strPath.indexOf("./") >= 0 || strPath.lastIndexOf(".") == strPath.length - 1) { return true; } return false; } function UrlLeafNameValidate(source, args) { var strMessagePrefix = ""; if (typeof source.MessagePrefix == "string") { strMessagePrefix = source.MessagePrefix; } else { strMessagePrefix = source.id; } var i = IndexOfIllegalCharInUrlLeafName(args.Value); if (i >= 0) { if (typeof source.errormessage == "string") { source.errormessage = AdmBuildParam(Strings.STS.L_ContainIllegalChar_Text, strMessagePrefix, args.Value.charAt(i)); } args.IsValid = false; } else if (UrlContainsIllegalStrings(args.Value)) { if (typeof source.errormessage == "string") { source.errormessage = AdmBuildParam(Strings.STS.L_ContainIllegalString_Text, strMessagePrefix); } args.IsValid = false; } else { args.IsValid = true; } } function UrlPathValidate(source, args) { var strMessagePrefix = ""; if (typeof source.MessagePrefix == "string") { strMessagePrefix = source.MessagePrefix; } else { strMessagePrefix = source.id; } var i = IndexOfIllegalCharInUrlPath(args.Value); if (i >= 0) { if (typeof source.errormessage == "string") { source.errormessage = AdmBuildParam(Strings.STS.L_ContainIllegalChar_Text, strMessagePrefix, args.Value.charAt(i)); } args.IsValid = false; } else if (UrlContainsIllegalStrings(args.Value)) { if (typeof source.errormessage == "string") { source.errormessage = AdmBuildParam(Strings.STS.L_ContainIllegalString_Text, strMessagePrefix); } args.IsValid = false; } else { args.IsValid = true; } } function IsCheckBoxListSelected(checkboxlist) { if (checkboxlist == null) return false; var len = checkboxlist.length; if (len == null) { return checkboxlist.checked; } else { for (var i = 0; i < len; i++) { var cb = checkboxlist[i]; if (cb.checked) { return true; } } } return false; } function STSValidatorEnable(val, bEnable, bSilent) { var objVal = document.getElementById(val); if (objVal == null) return; if (bSilent || Boolean(objVal.getAttribute("AlwaysEnableSilent"))) { objVal.enabled = bEnable == true; } else { if (typeof ValidatorEnable == "function") ValidatorEnable(objVal, bEnable); } } var recycleBinEnabled; var cascadeDeleteWarningMessage; var bIsFileDialogView; var g_ViewIdToViewCounterMap; var g_ctxDict; function NotifyBrowserOfAsyncUpdate(container) { var iframeName = '__spAjaxIframe'; var iframe = document.getElementById(iframeName); if (iframe == null) { iframe = document.createElement('IFRAME'); iframe.name = (iframe.id = iframeName); iframe.width = (iframe.height = "0"); iframe.src = 'about:blank'; iframe.style.display = 'none'; document.body.appendChild(iframe); } iframe.contentWindow.location.replace('/_layouts/15/images/blank.gif'); } function IsSafeHrefAlert(href, fAllowRelativeLinks) { if (href.match(new RegExp("^[^?]{" + (640 + 1).toString() + "}")) != null) { alert(Strings.STS.L_UrlTooLongError_Text); return false; } else if (IsSafeHref(href)) { return true; } else { if (href.match(new RegExp("^[a-zA-Z]*:")) != null) { alert(Strings.STS.L_UnknownProtocolUrlError_Text); return false; } else if (true == fAllowRelativeLinks) { return true; } else { alert(Strings.STS.L_UnknownProtocolUrlError_Text); return false; } } } function UpdateAccessibilityUI() { var t1 = document.getElementById("TurnOnAccessibility"); var t2 = document.getElementById("TurnOffAccessibility"); if (IsAccessibilityFeatureEnabled()) { if (t1 != null) t1.style.display = "none"; if (t2 != null) t2.style.display = ""; } else { if (t1 != null) t1.style.display = ""; if (t2 != null) t2.style.display = "none"; } } var browserUpdatedWithServerRedirectedUrl; function UpdateUrlWhenServerRedirects() { var pageContextInfo = window['_spPageContextInfo']; if (Flighting.VariantConfiguration.IsExpFeatureClientEnabled(708) && !(window["OffSwitch"] == null || OffSwitch.IsActive("90329B12-2C48-4DBE-A1B9-08BC2BBA2C26")) && (window["OffSwitch"] == null || OffSwitch.IsActive("DC0DFB52-4F4C-479D-9D07-43DE94F3123F")) && (window["OffSwitch"] == null || OffSwitch.IsActive("3EDB0B41-115A-410E-9C6B-9390F1D1AD94") || !browserUpdatedWithServerRedirectedUrl) && Boolean(pageContextInfo) && Boolean(pageContextInfo.serverRedirectedUrl)) { var serverRedirectedUrl = pageContextInfo.serverRedirectedUrl; if (!(window["OffSwitch"] == null || OffSwitch.IsActive("F1754AB4-0FF5-4169-A2E1-7665F6FF4E9F")) && Boolean(pageContextInfo.isSPO) && window.location.protocol.toLowerCase() === 'https:') { serverRedirectedUrl = serverRedirectedUrl.replace(/^http:\/\//i, 'https://'); } if (Boolean(window.history) && Boolean(window.history.replaceState)) { window.history.replaceState({ reason: "SPServerRedirect" }, "SPServerRedirect", serverRedirectedUrl); browserUpdatedWithServerRedirectedUrl = true; } else { window.location.href = serverRedirectedUrl; } } } function OnePageNavigationHandler(evt) { var registerFunc = function registerOnePageNavigationFunc() { performModernOnePageNavigationForFasterOnePage(evt); }; EnsureScriptFunc('SP.core.js', "performModernOnePageNavigationForFasterOnePage", registerFunc); } function isBrowserSupportedModernApp() { var browserSupported = true; try { var a = navigator.userAgent.toLowerCase(); var i = a.indexOf("msie"); if (-1 !== i) { var v = parseInt(a.substring(i + 5)); var supportedMode = !(window["OffSwitch"] == null || OffSwitch.IsActive("68B2E51A-1AC2-4ABF-924A-DFB7CD5C18E1")) ? 11 : 10; if (v < supportedMode && Boolean(document.documentMode) && document.documentMode < supportedMode) { browserSupported = false; } } } catch (e) { } return browserSupported; } function UserHasPermissionHigh(permissionLevel) { var pageContextInfo = window['_spPageContextInfo']; var webPermMasks = pageContextInfo['webPermMasks']; var webPermMasksHigh = webPermMasks != null ? Number(webPermMasks["High"]) : 0; var hasPerm = (webPermMasksHigh & permissionLevel) == permissionLevel; return hasPerm; } function ModernUXOptOutCookieIsOn() { return GetCookie('splnu') === '0'; } function PrepareForModernOnePageNavigation() { var SPBasePermissions_UseRemoteAPIs = 0x20; if (Flighting.VariantConfiguration.IsExpFeatureClientEnabled(1) && !(window["OffSwitch"] == null || OffSwitch.IsActive("79D8320F-D4AA-45D1-A83F-9B7AF522EE5C")) && isBrowserSupportedModernApp() && (window["OffSwitch"] == null || OffSwitch.IsActive("32012162-C12F-453D-A7EF-E00E74140C44") || UserHasPermissionHigh(SPBasePermissions_UseRemoteAPIs) && !ModernUXOptOutCookieIsOn())) { var docLibLinks = document.querySelectorAll('[onepagenavigationaction="1"]'); for (var index = 0; index < docLibLinks.length; index++) { var link = docLibLinks[index]; if (!!link.addEventListener) { link.addEventListener('click', OnePageNavigationHandler, false); } else if (!!link.attachEvent) { link.attachEvent('onclick', OnePageNavigationHandler); } } var registerFunc = function registerOnePageNavigationFunc() { setTimeout(preloadModernApp, 1000); }; EnsureScriptFunc('SP.core.js', "preloadModernApp", registerFunc); } } function SetIsAccessibilityFeatureEnabled(f) { if (f) document.cookie = "WSS_AccessibilityFeature=true;path=/;"; else document.cookie = "WSS_AccessibilityFeature=false;path=/;"; var hiddenAnchor = document.getElementById("HiddenAnchor"); var evt; if (browseris.ie) evt = { "srcElement": hiddenAnchor, "fakeEvent": 1, "enableStatus": f }; else evt = { "target": hiddenAnchor, "fakeEvent": 1, "enableStatus": f }; if (hiddenAnchor == null || typeof hiddenAnchor.onclick == 'undefined' || hiddenAnchor.onclick == null) return; hiddenAnchor.onclick(evt); } function DeleteCookie(sName) { document.cookie = sName + "=; expires=Thu, 01-Jan-70 00:00:01 GMT"; } function GetCookie(sName) { return GetCookieEx(sName, window); } function GetCookieEx(sName, wnd) { var aCookie = wnd.document.cookie.split("; "); for (var i = 0; i < aCookie.length; i++) { var aCrumbStr = aCookie[i]; var aCrumb = aCrumbStr.split("="); if (sName == aCrumb[0]) { if (aCrumb.length > 1) return unescapeProperly(aCrumb[1]); else return null; } } return null; } function SetCookie(sName, value) { SetCookieEx(sName, value, false, window); } function SetCookieEx(sName, value, isGlobal, wnd) { var c = sName + (value ? "=true" : "=false"); var p = isGlobal ? ";path=/" : ""; wnd.document.cookie = c + p; } function IsAccessibilityFeatureEnabled() { return GetCookie("WSS_AccessibilityFeature") == "true"; } function escapeForSync(str) { var strOut = ""; var ix = 0; var bDoingUnicode = false; var strSyncEscaped = "\\&|[]"; for (ix = 0; ix < str.length; ix++) { var charCode = str.charCodeAt(ix); var curChar = str.charAt(ix); if (bDoingUnicode && charCode <= 0x7f) { strOut += "]"; bDoingUnicode = false; } if (!bDoingUnicode && charCode > 0x7f) { strOut += "["; bDoingUnicode = true; } if (strSyncEscaped.indexOf(curChar) >= 0) strOut += "|"; if (charCode >= 97 && charCode <= 122 || charCode >= 65 && charCode <= 90 || charCode >= 48 && charCode <= 57) { strOut += curChar; } else if (charCode <= 0x0f) { strOut += "%0" + (charCode.toString(16)).toUpperCase(); } else if (charCode <= 0x7f) { strOut += "%" + (charCode.toString(16)).toUpperCase(); } else if (charCode <= 0x00ff) { strOut += "00" + (charCode.toString(16)).toUpperCase(); } else if (charCode <= 0x0fff) { strOut += "0" + (charCode.toString(16)).toUpperCase(); } else { strOut += (charCode.toString(16)).toUpperCase(); } } if (bDoingUnicode) strOut += "]"; return strOut; } function navigateMailToLink(strBody) { window.location.href = 'mailto:?body=' + escapeProperly(strBody); } function navigateMailToLinkWithMessage(strTo, strBody) { window.location.href = 'mailto:' + escapeProperly(strTo) + '?body=' + escapeProperly(escapeProperlyCoreCore(strBody, false, false, true)); } function newBlogPostOnClient(strProviderId, strBlogUrl, strBlogName) { var stsOpen; var fRet; stsOpen = StsOpenEnsureEx2("SharePoint.OpenDocuments.3"); if (stsOpen == null) { alert(Strings.STS.L_NewBlogPost_Text); return; } try { if (typeof stsOpen.NewBlogPost != "undefined") fRet = stsOpen.NewBlogPost(strProviderId, strBlogUrl, strBlogName); } catch (e) { alert(Strings.STS.L_NewBlogPostFailed_Text); } } function GetUrlFromWebUrlAndWebRelativeUrl(webUrl, webRelativeUrl) { var retUrl = webUrl == null || webUrl.length <= 0 ? "/" : webUrl; if (retUrl.charAt(retUrl.length - 1) != "/") { retUrl += "/"; } retUrl += webRelativeUrl; return retUrl; } function UpdateFormDigest(serverRelativeWebUrl, updateInterval) { try { var pageContextInfo = window['_spPageContextInfo']; if (pageContextInfo == null || pageContextInfo.updateFormDigestPageLoaded == null) { return; } var now = new Date(); if (now.getTime() - pageContextInfo.updateFormDigestPageLoaded.getTime() < updateInterval) { return; } if (serverRelativeWebUrl == null || serverRelativeWebUrl.length <= 0) { return; } var formDigestElement = (document.getElementsByName("__REQUESTDIGEST"))[0]; if (formDigestElement == null || formDigestElement.tagName.toLowerCase() != "input" || formDigestElement.type.toLowerCase() != "hidden" || formDigestElement.value == null || formDigestElement.value.length <= 0) { return; } var request = new XMLHttpRequest(); if (request == null) { return; } request.open("POST", GetUrlFromWebUrlAndWebRelativeUrl(serverRelativeWebUrl, "_vti_bin/sites.asmx"), false); request.setRequestHeader("Content-Type", "text/xml"); request.setRequestHeader("SOAPAction", "http://schemas.microsoft.com/sharepoint/soap/GetUpdatedFormDigest"); request.send("" + "" + " " + " " + " " + ""); var responseText = request.responseText; if (responseText == null || responseText.length <= 0) { return; } var startTag = ''; var endTag = ''; var startTagIndex = responseText.indexOf(startTag); var endTagIndex = responseText.indexOf(endTag, startTagIndex + startTag.length); var newFormDigest = null; if (startTagIndex >= 0 && endTagIndex > startTagIndex) { newFormDigest = responseText.substring(startTagIndex + startTag.length, endTagIndex); } if (newFormDigest == null || newFormDigest.length <= 0) { return; } var oldValue = formDigestElement.value; formDigestElement.value = newFormDigest; pageContextInfo.updateFormDigestPageLoaded = new Date(); } catch (ex) { } } function IsSupportedFirefoxOnWin() { return browseris.win && browseris.firefox3up; } function IsSupportedChromeOnWin() { return browseris.win && browseris.chrome; } function IsSupportedNPApiBrowserOnWin() { return IsSupportedChromeOnWin() || IsSupportedFirefoxOnWin(); } function IsNPAPIOnWinPluginInstalled(strMimeType) { return Boolean(navigator.mimeTypes) && navigator.mimeTypes[strMimeType] && navigator.mimeTypes[strMimeType].enabledPlugin; } function CreateNPApiOnWindowsPlugin(strMimeType) { var plugin = null; if (IsSupportedNPApiBrowserOnWin()) { try { plugin = document.getElementById(strMimeType); if (!Boolean(plugin) && IsNPAPIOnWinPluginInstalled(strMimeType)) { var pluginNode = document.createElement("object"); pluginNode.id = strMimeType; pluginNode.type = strMimeType; pluginNode.width = "0"; pluginNode.height = "0"; pluginNode.style.setProperty("visibility", "hidden", ""); document.body.appendChild(pluginNode); plugin = document.getElementById(strMimeType); } } catch (e) { plugin = null; } } return plugin; } function IsSupportedMacBrowser() { return browseris.mac && (browseris.firefox3up || browseris.safari3up || browseris.chrome); } function IsBrowserPluginInstalled(mimeType) { var hasMimeType = Boolean(navigator.mimeTypes) && navigator.mimeTypes[mimeType]; if (hasMimeType) { var type = navigator.mimeTypes[mimeType]; return !!type.enabledPlugin; } return false; } function IsMacPluginInstalled() { var webkitPluginInstalled = IsBrowserPluginInstalled("application/x-sharepoint-webkit"); var npapiPluginInstalled = IsBrowserPluginInstalled("application/x-sharepoint"); if (browseris.safari3up && webkitPluginInstalled) return true; return npapiPluginInstalled; } function CreateMacPlugin() { var plugin = null; if (IsSupportedMacBrowser() && !browseris.chrome) { plugin = document.getElementById("macSharePointPlugin"); if (plugin == null && IsMacPluginInstalled()) { var pluginMimeType = null; if (browseris.safari3up && IsBrowserPluginInstalled("application/x-sharepoint-webkit")) pluginMimeType = "application/x-sharepoint-webkit"; else pluginMimeType = "application/x-sharepoint"; var pluginNode = document.createElement("object"); pluginNode.id = "macSharePointPlugin"; pluginNode.type = pluginMimeType; pluginNode.width = "0"; pluginNode.height = "0"; pluginNode.style.visibility = "hidden"; document.body.appendChild(pluginNode); plugin = document.getElementById("macSharePointPlugin"); } } return plugin; } var g_objStssync; function GetStssyncHandler(szVersion) { if (!IsSupportedMacBrowser()) { try { g_objStssync = new ActiveXObject("SharePoint.StssyncHandler" + szVersion); } catch (e) { g_objStssync = null; } } else { g_objStssync = CreateMacPlugin(); } } function GetStssyncData(strType, strTextDefault, strImgPathDefault, strPrefix) { var stsSyncData = null; if (document.cookie.indexOf("stsSyncAppName") == -1 && document.cookie.indexOf("stsSyncIconPath") == -1) { if (IsSupportedMacBrowser()) { var plugin = GetStssyncHandler(""); if (plugin == null || typeof plugin.StssyncEnabled == 'undefined' || !plugin.StssyncEnabled) { document.cookie = "stsSyncAppName=0;"; document.cookie = "stsSyncIconPath=0;"; return stsSyncData; } } if (browseris.ie5up && browseris.win32 || IsSupportedMacBrowser()) { var strAppName; var strIconName; try { if (strType != "") GetStssyncHandler(".3"); if (!g_objStssync) { if (strType != "" && strType != "calendar" && strType != "contacts") { document.cookie = "stsSyncAppName=0;"; document.cookie = "stsSyncIconPath=0;"; return stsSyncData; } GetStssyncHandler(".2"); if (!g_objStssync || typeof g_objStssync.GetStssyncAppName == 'undefined' || !Boolean(strAppName = g_objStssync.GetStssyncAppName())) { document.cookie = "stsSyncAppName=0;"; document.cookie = "stsSyncIconPath=0;"; return stsSyncData; } } else { if (typeof g_objStssync.GetStssyncAppNameForType == 'undefined' || !Boolean(strAppName = g_objStssync.GetStssyncAppNameForType(strType))) { document.cookie = "stsSyncAppName=0;"; document.cookie = "stsSyncIconPath=0;"; return stsSyncData; } } } catch (e) { SP.DebugLogger.Write("FailureGetStssync", SP.DebugLogger.LoggingLevel.Interesting, "Failed to access stssync ActiveX"); document.cookie = "stsSyncAppName=0;"; document.cookie = "stsSyncIconPath=0;"; return stsSyncData; } document.cookie = "stsSyncAppName=" + escapeProperly(strAppName) + ";"; try { if (typeof g_objStssync.GetStssyncIconName == 'undefined') throw 0; strIconName = g_objStssync.GetStssyncIconName(); strIconName = strPrefix + strIconName; document.cookie = "stsSyncIconPath=" + escapeProperly(strIconName) + ";"; } catch (e) { document.cookie = "stsSyncIconPath=0;"; strIconName = strImgPathDefault; } } else { strAppName = strTextDefault; strIconName = strImgPathDefault; document.cookie = "stsSyncAppName=" + escapeProperly(strTextDefault); document.cookie = "stsSyncIconPath=" + escapeProperly(strImgPathDefault); } } else { strAppName = GetCookie("stsSyncAppName"); strIconName = GetCookie("stsSyncIconPath"); if (strAppName == '0') { return stsSyncData; } } strAppName = Strings.STS.L_LinkToBefore_Text + strAppName; stsSyncData = new Object(); stsSyncData.BtnText = strAppName; stsSyncData.BtnImagePath = strIconName; return stsSyncData; } function GetStssyncAppName(strDefault) { var stsSyncData = GetStssyncData("", strDefault, "", ""); return stsSyncData.BtnText; } function makeAbsUrl(strUrl) { if (strUrl.length > 0 && "/" == strUrl.substr(0, 1)) { strUrl = window.location.protocol + "//" + window.location.host + strUrl; } return strUrl; } function ExportHailStorm(type, weburl, guid, webname, listname, viewurl, passport, listrooturl, folderurl, folderid) { var strAppName = GetCookie("stsSyncAppName"); var strIconName = GetCookie("stsSyncIconPath"); if (strAppName != null && strAppName != '0') { var maxLinkLength = 500; var maxNameLength = 20; var link = "stssync://sts/?ver=1.1" + "&type=" + escapeProperly(type) + "&cmd=add-folder" + "&base-url=" + escapeForSync(weburl) + "&list-url=" + escapeForSync("/" + (makeAbsUrl(viewurl)).substr(weburl.length + 1) + "/") + "&guid=" + escapeProperly(guid); if (typeof offlineBtnUser != "undefined") link += "&user-id=" + offlineBtnUser; var names = "&site-name=" + escapeForSync(webname) + "&list-name=" + escapeForSync(listname); var context = ""; if (Boolean(folderurl)) context += "&folder-url=" + escapeForSync("/" + folderurl.substr(listrooturl.length + 1)); if (Boolean(folderid)) context += "&folder-id=" + folderid; if (link.length + names.length + context.length > maxLinkLength && (webname.length > maxNameLength || listname.length > maxNameLength)) { if (webname.length > maxNameLength) webname = webname.substring(0, maxNameLength - 1) + "..."; if (listname.length > maxNameLength) listname = listname.substring(0, maxNameLength - 1) + "..."; names = "&site-name=" + escapeForSync(webname) + "&list-name=" + escapeForSync(listname); } link = link + names + context; if (link.length > maxLinkLength) alert(Strings.STS.L_StssyncTooLong_Text); else { try { window.location.href = link; } catch (e) { } } } } var g_objDiagramLaunch; function GetDiagramLaunchInstalled() { var strAppName = ''; if (document.cookie.indexOf("digInstalled") == -1) { try { g_objDiagramLaunch = new ActiveXObject("DiagramLaunch.DiagramLauncher"); if (typeof g_objDiagramLaunch.EnsureDiagramApplication != "undefined") strAppName = g_objDiagramLaunch.EnsureDiagramApplication(); document.cookie = "digInstalled=" + escapeProperly(strAppName) + ";"; } catch (e) { g_objDiagramLaunch = null; document.cookie = "digInstalled=0;"; } } else { strAppName = GetCookie("digInstalled"); if (strAppName == '0') strAppName = ''; } return strAppName; } var g_objProjectTaskLaunch; function GetProjectTaskLaunchInstalled() { if (document.cookie.indexOf("projInstalled") == -1) { var strAppName = ''; try { g_objProjectTaskLaunch = new ActiveXObject("WinProj.Activator"); if (typeof g_objProjectTaskLaunch.EnsureTaskApplication != 'undefined') strAppName = g_objProjectTaskLaunch.EnsureTaskApplication(); document.cookie = "projInstalled=" + escapeProperly(strAppName) + ";"; } catch (e) { document.cookie = "projInstalled=0;"; g_objProjectTaskLaunch = null; } } else { strAppName = GetCookie("projInstalled"); if (strAppName == '0') strAppName = ''; } return strAppName; } var g_expDatabase; function GetDataBaseInstalled() { var databaseBtnText = ''; var databaseBtnDesc = ''; if (document.cookie.indexOf("databaseBtnText") == -1 || document.cookie.indexOf("databaseBtnDesc") == -1) { try { g_expDatabase = new ActiveXObject('SharePoint.ExportDatabase'); if (Boolean(g_expDatabase) && typeof g_expDatabase.IsDBProgramInstalled != "undefined" && g_expDatabase.IsDBProgramInstalled()) { if (typeof g_expDatabase.MenuTitle != 'undefined') document.cookie = "databaseBtnText=" + escapeProperly(g_expDatabase.MenuTitle) + ";"; if (typeof g_expDatabase.MenuDescription != 'undefined') document.cookie = "databaseBtnDesc=" + escapeProperly(g_expDatabase.MenuDescription) + ";"; } else { document.cookie = "databaseBtnText=" + '0' + ";"; document.cookie = "databaseBtnDesc=" + '0' + ";"; g_expDatabase = null; } } catch (e) { document.cookie = "databaseBtnText=" + '0' + ";"; document.cookie = "databaseBtnDesc=" + '0' + ";"; g_expDatabase = null; } } else { databaseBtnText = GetCookie("databaseBtnText"); databaseBtnDesc = GetCookie("databaseBtnDesc"); if (databaseBtnText != '0' && databaseBtnText != '0') { var dummyExpDatabase = new Object(); dummyExpDatabase.MenuTitle = databaseBtnText; dummyExpDatabase.MenuDescription = databaseBtnDesc; return dummyExpDatabase; } else { g_expDatabase = null; } } return g_expDatabase; } var g_ssImporterObj; var g_fSSImporter; function EnsureSSImportInner() { if (browseris.ie5up && browseris.win32) { try { g_ssImporterObj = new ActiveXObject("SharePoint.SpreadsheetLauncher.2"); if (g_ssImporterObj) g_fSSImporter = true; } catch (e) { try { g_ssImporterObj = new ActiveXObject("SharePoint.SpreadsheetLauncher.1"); if (g_ssImporterObj) g_fSSImporter = true; } catch (e) { g_fSSImporter = false; } } } else if (IsSupportedMacBrowser()) { g_ssImporterObj = CreateMacPlugin(); if (g_ssImporterObj) g_fSSImporter = true; else g_fSSImporter = false; } } function EnsureSSImporter(byPassCookies) { byPassCookies = typeof byPassCookies == undefined ? false : byPassCookies; if (document.cookie.indexOf("EnsureSSImporter") == -1 || byPassCookies) { EnsureSSImportInner(); document.cookie = "EnsureSSImporter=" + String(g_fSSImporter) + ";"; } else { g_fSSImporter = GetCookie("EnsureSSImporter") == "true" ? true : false; } return g_fSSImporter; } function GetThemedImageUrl(FileName) { return GetThemedImageUrl_Core(FileName, '/_layouts/15/images/'); } function GetThemedLocalizedImageUrl(FileName) { var localizedImagePath = "/_layouts/15/" + Strings.STS.L_Language_Text + "/images/"; return GetThemedImageUrl_Core(FileName, localizedImagePath); } function GetThemedImageUrl_Core(FileName, FallbackImagePath) { var themedImageUrl; var imageUrl = FallbackImagePath + FileName; var useClientSideTheming = SPThemeUtils.UseClientSideTheming(); var pageContextInfo = window['_spPageContextInfo']; if (pageContextInfo != null && !useClientSideTheming) { var themedCssFolderUrl = pageContextInfo['themedCssFolderUrl']; var themedImageFileNames = pageContextInfo['themedImageFileNames']; var themedImageFileName = null; if (themedImageFileNames != null) { themedImageFileName = themedImageFileNames[FileName]; } if (themedCssFolderUrl != null && themedCssFolderUrl.length > 0 && themedImageFileName != null) { imageUrl = themedCssFolderUrl + '/' + themedImageFileName; } } themedImageUrl = GetImageUrlWithRevision(imageUrl); if (useClientSideTheming) { (Theming.GetPageManager()).RegisterAllImages(); themedImageUrl += "#ThemeKey="; themedImageUrl = (Theming.GetPageManager()).GetThemedImageSrc(themedImageUrl); } return themedImageUrl; } function GetImageUrlWithRevision(imageUrl) { return imageUrl.search(/[?]/) > -1 ? imageUrl : imageUrl + "?" + "rev=43"; } function ShowHideSection(sectionid, imgid) { var group = document.getElementById(sectionid); var img = document.getElementById(imgid); if (group == null) return; if (group.style.display != "none") { group.style.display = "none"; img.src = GetThemedImageUrl("commentexpand12.png"); } else { group.style.display = ""; img.src = GetThemedImageUrl("commentcollapse12.png"); } } function ShowSection(sectionid, imgid) { var group = document.getElementById(sectionid); var img = document.getElementById(imgid); if (group == null) return; if (group.style.display == "none") { group.style.display = ""; img.src = GetThemedImageUrl("commentcollapse12.png"); } } function ShowHideInputFormSection(sectionid, bShow) { var e = document.getElementById(sectionid); if (e != null) e.style.display = bShow ? "" : "none"; for (var i = 1; i < 3; i++) { e = document.getElementById(sectionid + "_tablerow" + String(i)); if (e != null) e.style.display = bShow ? "" : "none"; } } function ShowHideInputFormControl(id, bHide, bDisableValidators, bSilent) { var displaySetting = ""; if (bHide == true) { displaySetting = "none"; } var validators = eval(id + '_validators'); var i = 0; if (validators != null) { for (i = 0; i < validators.length; i++) { STSValidatorEnable(validators[i], !bDisableValidators, bSilent); } } for (i = 1; i <= 5; i++) { var rowId = id + "_tablerow" + String(i); var row = document.getElementById(rowId); if (row != null && !browseris.mac) { row.style.display = displaySetting; } } } function HideMenuControl(menuControlId) { if (typeof menuControlId == "undefined" || menuControlId == null) return; var menu = document.getElementById(menuControlId); if (typeof menu == "undefined" || menu == null) return; var menuItems = menu.getElementsByTagName("ie:menuitem"); if (typeof menuItems == "undefined" || menuItems == null) return; for (var i = 0; i < menuItems.length; i++) { var menuItem = menuItems[i]; var hiddenScript = menuItem.getAttribute("hidden"); if (typeof hiddenScript == "undefined" || hiddenScript == null || !eval(hiddenScript)) return; } menu.style.display = 'none'; } function SetControlDisabledStatus(obj, disabledStatus) { try { if (Boolean(obj.setAttribute)) obj.setAttribute('disabled', String(disabledStatus)); if (!disabledStatus && Boolean(obj.removeAttribute)) obj.removeAttribute('disabled'); } catch (e) { } } function SetControlDisabledStatusRecursively(obj, disabledStatus) { if (obj == null) return; SetControlDisabledStatus(obj, disabledStatus); var objChildren = obj.childNodes; for (var i = 0; objChildren.length > i; i++) { SetControlDisabledStatusRecursively(objChildren[i], disabledStatus); } } function SetChildControlsDisabledStatus(obj, disabledStatus) { var objChildren = obj.childNodes; for (var i = 0; i < objChildren.length; i++) { SetControlDisabledStatusRecursively(objChildren[i], disabledStatus); } } var g_PNGImageIds; var g_PNGImageSources; function displayPNGImage(id, src, width, height, alt) { if (g_PNGImageIds == null) g_PNGImageIds = []; if (g_PNGImageSources == null) g_PNGImageSources = []; var style = null; document.write(" 0) document.write("width='" + String(width) + "' "); if (Boolean(height) && height > 0) document.write("height='" + String(height) + "' "); document.write("alt='" + alt + "' "); if (Boolean(style)) document.write("style='" + style + "' "); document.write(" src='" + src + "' />"); g_PNGImageIds.push(id); g_PNGImageSources.push(src); } function ProcessPNGImages() { var useFilter = browseris.ie && browseris.ie55up && browseris.verIEFull < 7.0; if (g_PNGImageIds != null && useFilter) { for (var i = 0; i < g_PNGImageIds.length; i++) { var img = document.getElementById(g_PNGImageIds[i]); if (img != null && g_PNGImageSources[i] != null) { img.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src=" + g_PNGImageSources[i] + "),sizingMethod=scale);"; img.src = "/_layouts/15/images/blank.gif?rev=43"; } } } } function CtxSetIsWebEditorPreview(num) { ctx.isWebEditorPreview = num; } function CtxSetCurrentUserId(strUserId) { ctx.CurrentUserId = strUserId; } function CtxSetIsForceCheckout(fForce) { ctx.isForceCheckout = fForce; } function LoginAsAnother(url, bUseSource) { document.cookie = "loginAsDifferentAttemptCount=0"; if (bUseSource == "1") { GoToPage(url); } else { var ch = url.indexOf("?") >= 0 ? "&" : "?"; url += ch + "Source=" + escapeProperly(window.location.href); Nav.navigate(url); } } function CLVPFromEvent(evt) { return DeferCall('CLVPFromEventReal', evt); } function STSNavigateToView(evt, url) { Nav.navigate(url); } function STSNavigate2(evt, url) { Nav.navigate(url); } function STSNavigateTop(navigateToUri) { var fNavigate = true; if (typeof window.top.SPUpdatePage !== 'undefined') { fNavigate = window.top.SPUpdatePage(navigateToUri); } if (fNavigate) { window.top.location.href = STSPageUrlValidation(navigateToUri); } } function GoToPage(url, fOnlyUseExistingSource) { var ch = url.indexOf("?") >= 0 ? "&" : "?"; if ((GetUrlKeyValue("Source", true, url)).length == 0) { var srcUrl = fOnlyUseExistingSource ? GetUrlKeyValue("Source") : GetSource(); if (srcUrl != null && srcUrl != "") { if (fOnlyUseExistingSource) srcUrl = escapeProperly(STSPageUrlValidation(srcUrl)); if (url.length + srcUrl.length <= 1950) { url += ch + "Source=" + srcUrl; } } } Nav.navigate(url); } function TrimSpaces(str) { var st; var end; str = str.toString(); var len = str.length; for (st = 0; st < len; st++) { if (str.charAt(st) != ' ') break; } if (st == len) return ""; for (end = len - 1; end > st; end--) { if (str.charAt(end) != ' ') break; } end++; return str.substring(st, end); } function TrimWhiteSpaces(str) { var st; var end; str = str.toString(); var len = str.length; var ch; for (st = 0; st < len; st++) { ch = str.charAt(st); if (ch != ' ' && ch != '\t' && ch != '\n' && ch != '\r' && ch != '\f') break; } if (st == len) return ""; for (end = len - 1; end > st; end--) { ch = str.charAt(end); if (ch != ' ' && ch != '\t' && ch != '\n' && ch != '\r' && ch != '\f') break; } end++; return str.substring(st, end); } function ShowMtgNavigatorPane() { (document.getElementById("MeetingNavigatorPane")).style.display = "block"; } function HideMtgNavigatorPane() { (document.getElementById("MeetingNavigatorPane")).style.display = "none"; } function HideMtgDesc() { (document.getElementById("MeetingDescription")).style.display = "none"; } function GetMultipleUploadEnabled() { try { if (browseris.ie5up && !browseris.mac && new ActiveXObject('STSUpld.UploadCtl')) return true; } catch (e) { } return false; } function SetUploadPageTitle() { if (Number(GetUrlKeyValue("Type")) == 1) { document.title = Strings.STS.L_NewFormClickOnce1_Text; if (browseris.ie || browseris.nav6up) { var titleElt = document.getElementById("onetidTextTitle"); if (titleElt != null) titleElt.innerHTML = Strings.STS.L_NewFormClickOnce1_Text; } if (typeof SP != "undefined" && SP != null && SP.QoS != null) SP.QoS.WriteUserEngagement("CreateFolder_Old"); } } function GetSelectedValue(frmElem) { if (Boolean(frmElem) && frmElem.selectedIndex > -1) { var option = frmElem.options[frmElem.selectedIndex]; return option.value; } else return ""; } function GetSelectedText(frmElem) { if (Boolean(frmElem) && frmElem.selectedIndex > -1) { var option = frmElem.options[frmElem.selectedIndex]; return option.text; } else return ""; } function MtgShowTimeZone() { if (GetCookie("MtgTimeZone") == "1") { EnsureScriptParams("core.js", "MtgToggleTimeZone"); } } function FormatDate(sDate, sTime, eDate, eTime) { var DateSeparator = Strings.STS.L_DateSeparator_Text; if (browseris.win32 && sDate == eDate) DateSeparator = Strings.STS.L_DateSeparatorEx_Text; if (sDate == eDate) { document.write(Strings.STS.L_Date_Text + " " + sDate); if (sTime != eTime) document.write(" " + Strings.STS.L_TimeLong_Text + " " + sTime + DateSeparator + eTime); else document.write(" " + Strings.STS.L_TimeLong_Text + " " + sTime); } else { document.write(Strings.STS.L_TimeLong_Text + " " + sDate + " (" + sTime + ")" + DateSeparator + eDate + " (" + eTime + ")"); } } function GetAlertText(isDetached) { var howOrphaned = isDetached & 0x10 - 1; var howDetached = isDetached - howOrphaned; if (Boolean(howOrphaned)) { switch (howOrphaned) { case 1: return typeof g_meetingCount != "undefined" && g_meetingCount == 1 ? Strings.STS.L_DETACHEDSINGLEEXCEPT_Text : Strings.STS.L_DETACHEDCANCELLEDEXCEPT_Text; case 2: return Strings.STS.L_DETACHEDCANCELLEDSERIES_Text; case 3: return Strings.STS.L_DETACHEDCANCELLEDEXCEPT_Text; case 4: return typeof g_meetingCount != "undefined" && g_meetingCount == 1 ? Strings.STS.L_DETACHEDSINGLEEXCEPT_Text : Strings.STS.L_DETACHEDUNLINKEDSINGLE_Text; case 5: return Strings.STS.L_DETACHEDUNLINKEDSERIES_Text; case 6: return Strings.STS.L_DETACHEDSERIESNOWSINGLE_Text; case 7: return Strings.STS.L_DETACHEDSINGLENOWSERIES_Text; case 8: return Strings.STS.L_DETACHEDPASTEXCPMODIFIED_Text; } } else if (Boolean(howDetached)) { switch (howDetached) { case 16: return Strings.STS.L_DETACHEDNONGREGORIANCAL_Text; } } return null; } function retrieveCurrentThemeLink() { var cssLink; var links = document.getElementsByTagName("link"); for (var i = 0; i < links.length; i++) { var link = links[i]; if (link.type == "text/css" && link.id == "onetidThemeCSS") cssLink = link; } if (Boolean(cssLink)) { var re = /(\.\.\/)+/; var relativeURL = cssLink.href; var newURL = relativeURL.replace(re, "/"); return newURL; } return null; } var JSRequest; var ExpGroupWPListName; var ExpGroupCookiePrefix; var ExpGroupCookieDelimiter; var ExpGroupMaxWP; var ExpGroupMaxCookieLength; var g_ExpGroupCAMLQueue; var g_ExpGroupXSLTQueue; var g_ExpGroupInProgress; var g_ExpInitializing; var g_ExpGroupTable; var g_ExpGroupNeedsState; var g_ExpGroupParseStage; function ExpCollGroup(groupName, imgName, evt, noAjax) { if (evt != null) g_ExpGroupNeedsState = true; if (document.getElementById("titl" + groupName) == null) return; var viewTable = (document.getElementById("titl" + groupName)).parentNode; if (viewTable == null) return; var ctxNum = groupName.substr(0, groupName.indexOf("-")); var ctxCur = window["ctx" + ctxNum]; if (!Boolean(ctxCur)) return; if (!ctxCur.StateInitDone) ctxInitItemState(ctxCur); if (ctxCur.SelectAllCbx == null) ctxCur.SelectAllCbx = getSelectAllCbxFromTable(viewTable); var tbodyTags = viewTable.getElementsByTagName("TBODY"); var numElts = tbodyTags.length; var len = groupName.length; var img = document.getElementById(imgName); if (img == null) return; var srcPath = img.src; var imgSrc = img.getAttribute('src'); var index = srcPath.lastIndexOf("/"); var commonClusterSrcPath = GetThemedImageUrl("spcommon.png"); var collapseImgClass = fRightToLeft ? "ms-commentcollapsertl-icon" : "ms-commentcollapse-icon"; var collapseSpanClass = fRightToLeft ? "ms-commentcollapsertl-iconouter" : "ms-commentcollapse-iconouter"; var expandImgClass = fRightToLeft ? "ms-commentexpandrtl-icon" : "ms-commentexpand-icon"; var expandSpanClass = fRightToLeft ? "ms-commentexpandrtl-iconouter" : "ms-commentexpand-iconouter"; var oldExpandSrcPath = '/_layouts/15/images/plus.gif'; var oldCollapseSrcPath = '/_layouts/15/images/minus.gif'; var fOpen = false; var displayStr; var bUpdateImgAltText = true; if (imgSrc == oldExpandSrcPath || imgSrc == commonClusterSrcPath && img.className == expandImgClass || g_ExpInitializing) { fOpen = true; displayStr = ""; img.alt = Strings.STS.L_SPCollapse; if (imgSrc == commonClusterSrcPath) { img.className = collapseImgClass; img.parentNode.className = collapseSpanClass; } else img.src = oldCollapseSrcPath; } else { fOpen = false; displayStr = "none"; if (bUpdateImgAltText) img.alt = Strings.STS.L_SPExpand; if (imgSrc == commonClusterSrcPath) { img.className = expandImgClass; img.parentNode.className = expandSpanClass; } else img.src = oldExpandSrcPath; } var j = 0; for (var i = 0; i < numElts; i++) { var childObj = tbodyTags[i]; if (childObj.id != null && childObj.id.length > len + 4 && groupName == (childObj.id.slice(4)).substr(0, len)) { if (fOpen) { index = childObj.id.indexOf("_", len + 4); if (index != -1) { index = childObj.id.indexOf("_", index + 1); if (index != -1) continue; } } var previousDisplay = childObj.style.display; childObj.style.display = displayStr; var itemCount = 0; if (Boolean(childObj.getAttribute("selectableRows"))) itemCount = Number(childObj.getAttribute("selectableRows")); if (typeof FV4UI != "undefined" && FV4UI() && Boolean(itemCount)) { if (!fOpen) { if (previousDisplay != "none") ctxCur.TotalListItems -= itemCount; EnsureScriptParams("core.js", "DeselectCollapsedGroup", ctxCur, childObj); EnsureScriptParams("core.js", "UpdateSelectAllCbx", ctxCur, true); } else { ctxCur.TotalListItems += itemCount; EnsureScriptParams("core.js", "UpdateSelectAllCbx", ctxCur, false); } } if (fOpen && childObj.id.substr(0, 4) == "titl") { var imgObj = document.getElementById("img_" + childObj.id.slice(4)); var imgObjSrc = imgObj.getAttribute('src'); imgObj.alt = Strings.STS.L_SPExpand; if (imgObjSrc == commonClusterSrcPath) { imgObj.className = expandImgClass; imgObj.parentNode.className = expandSpanClass; } else { imgObj.src = oldExpandSrcPath; } } var groupID = "tbod" + groupName; var child; if (childObj.id.substr(0, groupID.length) == groupID) { if (noAjax) { for (j = 0; j < childObj.childNodes.length; j++) { child = childObj.childNodes[j]; child.style.display = displayStr; } } if (childObj.childNodes.length == 0) { var nextTBody = childObj.nextSibling; while (nextTBody != null) { if (nextTBody.tagName == "TBODY" && nextTBody.id == "") { for (j = 0; j < nextTBody.childNodes.length; j++) { child = nextTBody.childNodes[j]; child.style.display = displayStr; if (typeof FV4UI != "undefined" && FV4UI()) { HandleSingleGroupByRow(ctxCur, child, fOpen); UpdateSelectAllCbx(ctxCur, true); } } break; } else nextTBody = nextTBody.nextSibling; } } } } } if (FV4UI()) EnsureScriptParams("core.js", "UpdateCtxLastSelectableRow", ctxCur, viewTable); if (!noAjax && !g_ExpGroupParseStage) { if (g_ExpGroupNeedsState && ExpGroupFetchWebPartID(groupName) != null && !Boolean(ctxCur.noGroupCollapse)) { if (fOpen) { AddGroupToCookie(groupName); } else { RemoveGroupFromCookie(groupName); } } if (fOpen) { var tbody = document.getElementById("tbod" + groupName + "_"); if (tbody != null) { var isLoaded = tbody.getAttribute("isLoaded"); if (isLoaded == "false") { ExpGroupFetchData(groupName, evt); } } } } } function ExpGroupFetchData(groupName, evt) { var loadString = "" + Strings.STS.L_Loading_Text + ""; ExpGroupRenderData(loadString, groupName, "false"); if (!g_ExpGroupInProgress) { var groupString = ExpGroupFetchGroupString(groupName); if (groupString == null) { loadString = "" + Strings.STS.L_Loading_Error_Text + ""; ExpGroupRenderData(loadString, groupName, "false"); if (Boolean(evt) && g_ExpGroupXSLTQueue.length > 0) { ExpGroupFetchData(g_ExpGroupXSLTQueue.shift(), evt); } else if (!Boolean(evt) && g_ExpGroupCAMLQueue.length > 0) { ExpGroupFetchData(g_ExpGroupCAMLQueue.shift(), evt); } return; } if (typeof InitAllClvps == "undefined" && evt != null) g_ExpInitializing = true; else { g_ExpInitializing = false; g_ExpGroupInProgress = true; } ExpGroupCallServer(groupString, groupName, evt); if (g_ExpGroupCAMLQueue.length > 0 && evt == null) { ExpGroupFetchData(g_ExpGroupCAMLQueue.shift()); } } else { if (Boolean(evt)) g_ExpGroupXSLTQueue.push(groupName); else g_ExpGroupCAMLQueue.push(groupName); } } function ExpGroupCallServer(groupString, groupName, evt) { if (evt != null) { var obj = evt; if (evt == "PageLoad") { obj = new Object(); obj.fakeEvent = true; } EnsureScriptParams("inplview", "inplview.ExpGroup", obj, groupName); } else { var viewCounter = groupName.substring(0, groupName.indexOf("-")); var myCtx = window["ctx" + viewCounter]; var webPartID = ExpGroupFetchWebPartID(groupName); if (webPartID != null) { var functionName = "ExpGroupCallServer" + webPartID; if (myCtx != null && myCtx.clvp != null) { var myClvp = myCtx.clvp; var strFilter = myClvp.FilterString(); if (strFilter != null) { groupString += "|" + strFilter; } } var functionCall = functionName + "('" + groupString + "','" + groupName + "')"; eval(functionCall); } } } function DoPagingCallback(webPartID, pagingParam) { if (webPartID != null) { var functionName = "DoPagingCallback" + webPartID; var functionCall = functionName + "('" + pagingParam + "')"; eval(functionCall); } } function ExpGroupReceiveData(htmlToRender, groupName) { var ctxId = "ctx" + groupName.substring(0, groupName.indexOf("-")); var indexBeginCTXName = htmlToRender.indexOf("CTXName=\""); if (indexBeginCTXName != -1) { if (ctxId != "ctx1") { htmlToRender = htmlToRender.replace(/ CTXName=\"ctx1\" /g, " CTXName=\"" + ctxId + "\" "); } } var needOuterWrap = false; if (htmlToRender.length < 4) { needOuterWrap = true; } else if (htmlToRender.substring(0, 3) != ""; } ExpGroupRenderData(htmlToRender, groupName, "true"); ProcessImn(); g_ExpGroupInProgress = false; if (g_ExpGroupCAMLQueue.length > 0) { ExpGroupFetchData(g_ExpGroupCAMLQueue.shift()); } } function ExpGroupRenderData(htmlToRender, groupName, isLoaded) { var tbody = document.getElementById("tbod" + groupName + "_"); var wrapDiv = document.createElement("DIV"); var rg = groupName.split("-"); wrapDiv.innerHTML = "" + htmlToRender + "
"; tbody.parentNode.replaceChild(wrapDiv.firstChild.firstChild, tbody); } var titlTbody; function ExpGroupFetchGroupString(groupName) { titlTbody = document.getElementById("titl" + groupName); if (titlTbody == null) { return null; } else { var groupString = titlTbody.getAttribute("groupString"); return groupString; } } function ExpGroupFetchWebPartID(groupName) { var viewCounter = groupName.substring(0, groupName.indexOf("-")); var lookupEntry = document.getElementById("GroupByWebPartID" + viewCounter); if (lookupEntry == null) return null; return lookupEntry.getAttribute("webPartID"); } function RenderActiveX(str) { document.write(str); } function RenderActiveX2(s, id) { if (id == null) return; var oldObject = document.getElementById(id); if (oldObject != null) { var objParent = oldObject.parentNode; var divHost = document.createElement('div'); divHost.innerHTML = s; var newObject = divHost.childNodes[0]; if (newObject != null) objParent.replaceChild(newObject, oldObject); } } function OnItem(elm) { DeferCall('OnItemDeferCall', elm); } function OnChildItem(elm) { var i; for (i = 0; i < elm.childNodes.length; i++) { var child = elm.childNodes[i]; if (child.nodeType == 1 && child.tagName == "TABLE" && Boolean(child.getAttribute("NameOrTitle"))) break; if (child.nodeType == 1 && child.tagName == "DIV" && child.style.display != "none" && child.style.visibility != "hidden") { OnItem(child); break; } } } function OnLink(elm) { DeferCall('OnLinkDeferCall', elm); } function MMU_PopMenuIfShowing(menuElement) { DeferCall('MMU_PopMenuIfShowingDeferCall', menuElement); } function OnMouseOverFilter(elm) { DeferCall('OnMouseOverFilterDeferCall', elm); } function OnChildColumn(elm) { var i; for (i = 0; i < elm.childNodes.length; i++) { var child = elm.childNodes[i]; if (child.nodeType == 1 && child.tagName == "DIV" && child.getAttribute("CtxNum") != null) { OnMouseOverFilter(child); break; } } } function MMU_EcbTableMouseOverOut(ecbTable, fMouseOver) { DeferCall('MMU_EcbTableMouseOverOutDeferCall', ecbTable, fMouseOver); } function OnMouseOverAdHocFilter(elm, fieldStr) { DeferCall('OnMouseOverAdHocFilterDeferCall', elm, fieldStr); } function MMU_EcbLinkOnFocusBlur(menu, ecbLink, fOnFocus) { DeferCall('MMU_EcbLinkOnFocusBlurDeferCall', menu, ecbLink, fOnFocus); } function GetElementByClassName(elem, classname) { if (Boolean(elem.className) && typeof elem.className.indexOf != 'undefined') { if (elem.className.indexOf(classname) > -1) return elem; } var temp; for (var i = 0; i < elem.childNodes.length; i++) { temp = GetElementByClassName(elem.childNodes[i], classname); if (temp != null) return temp; } return null; } function AddWhiteBG() { if (searcharea.className.indexOf(" " + whitebgclass) == -1) { var cn = searcharea.className.trim() + " " + whitebgclass; cn = cn.trim(); searcharea.className = cn; } } function RemoveWhiteBG() { if (locked) return; searcharea.className = searcharea.className.replace(RegExp(" " + whitebgclass), ""); } var locked; function LockBG() { locked = !locked; if (locked) AddWhiteBG(); else RemoveWhiteBG(); } var searcharea; var searchbox; var searchimage; var whitebgclass; function InitSearchBoxStyleEvents(sarea, sbox, simage_class, wbgclass) { searcharea = document.getElementById(sarea); searchbox = document.getElementById(sbox); searchimage = GetElementByClassName(searcharea, simage_class); whitebgclass = wbgclass; if (searchbox == null || searchimage == null) return; searchbox.onfocus = LockBG; searchbox.onmouseover = AddWhiteBG; searchbox.onblur = LockBG; searchbox.onmouseout = RemoveWhiteBG; searchimage.onmouseover = AddWhiteBG; searchimage.onmouseout = RemoveWhiteBG; } function IsFullNameDefined(fullName) { if (!Boolean(fullName)) { return false; } var names = fullName.split("."); var len = names.length; var obj = window; for (var i = 0; i < len; i++) { obj = obj[names[i]]; if (typeof obj == "undefined") { return false; } } return true; } function TypeofFullName(fullName) { if (!Boolean(fullName)) { return "undefined"; } var names = fullName.split("."); var len = names.length; var obj = window; for (var i = 0; i < len; i++) { obj = obj[names[i]]; if (typeof obj == "undefined") { return "undefined"; } } return typeof obj; } var _v_dictSod; var _v_dictCss; var Sods; var _v_qsod; var _v_sodctx; function Sod(url, key) { this.url = url; this.key = key; this.loaded = false; this.depkeys = null; this.state = 1; this.qfn = null; } function SodCallbackInfo(fn, errorFn, expectedTypeName) { this.success = fn; this.error = errorFn; this.expectedType = expectedTypeName; } function AreAllSodsLoaded() { var sod; if (g_PendingLoadSodQueue != null) { for (var i = 0; i < g_PendingLoadSodQueue.length; i++) { var sodQueueEntry = g_PendingLoadSodQueue[i]; sod = sodQueueEntry.sod; if (Boolean(sod) && sod.state != Sods.loaded) { return false; } } } if (g_spPreFetchKeys != null) { for (var idx = 0; idx < g_spPreFetchKeys.length; idx++) { var key = g_spPreFetchKeys[idx]; sod = _v_dictSod[key]; if (Boolean(sod) && sod.state != Sods.loaded) { return false; } } } for (var scriptKey in _v_dictSod) { sod = _v_dictSod[scriptKey]; if (Boolean(sod) && (sod.state == Sods.loading || sod.state == Sods.pending || sod.state == Sods.error)) return false; } return true; } function UrlToSod(url) { for (var i in _v_dictSod) { var sod = _v_dictSod[i]; if (sod.url == url) { return sod; } } return null; } function ResetSodState() { for (var i in _v_dictSod) { var sod = _v_dictSod[i]; if (sod.state == Sods.loaded && sod.url != null) { sod.reset = true; } sod.qfn = null; } } function RegisterOnDemandCss(key, url) { _v_dictCss[key] = new Sod(url, key); } function LoadCssOnDemand(key, callback) { var sod = _v_dictCss[key]; if (sod != null) _ensureCssLink(sod.url, callback); else if (callback != null) callback(); } function RegisterSod(key, url) { key = NormalizeSodKey(key); var sod = _v_dictSod[key]; if (sod != null) { if ("undefined" != typeof sod.url && sod.url == null && url != null) { sod.url = url; if (AjaxNavigate$isMDSURL(window.location.href)) { sod.reset = true; } } return; } sod = new Sod(url, key); _v_dictSod[key] = sod; } function NormalizeListViewSodKey(inputJS) { var isLoadingListViewJS = typeof _spPageContextInfo !== "undefined" && typeof _spPageContextInfo.isSLV !== "undefined" && Boolean(_spPageContextInfo) && Boolean(_spPageContextInfo.isSLV); if (isLoadingListViewJS) { var script = inputJS.toLowerCase(); var isInplview = script == "inplview" || script == "inplview.js"; var isClienttemplates = script == "clienttemplates" || script == "clienttemplates.js"; var isClientrenderer = script == "clientrenderer" || script == "clientrenderer.js"; if (isInplview || isClienttemplates || isClientrenderer) { return "listview.js"; } } return inputJS; } function ResetListViewSods(bReset) { ResetSod("inplview", bReset); ResetSod("inplview.js", bReset); ResetSod("clienttemplates", bReset); ResetSod("clienttemplates.js", bReset); ResetSod("clientrenderer", bReset); ResetSod("clientrenderer.js", bReset); } function ResetSod(sodkey, bReset) { var sod = _v_dictSod[sodkey]; if (Boolean(sod)) { sod.reset = bReset; } } function RegisterSodDep(key, dep) { key = NormalizeSodKey(key); dep = NormalizeSodKey(dep); var sod = _v_dictSod[key]; if (sod == null) return; if (sod.depkeys == null) sod.depkeys = []; if (-1 == ArrayIndexOf(sod.depkeys, dep)) { sod.depkeys.push(dep); } } function LoadSodByKey(key, fn, bSync, errorFn, expectedTypeName) { key = NormalizeSodKey(key); key = NormalizeListViewSodKey(key); var sod = _v_dictSod[key]; if (fn != null && sod != null) { if (sod.qfn == null) sod.qfn = []; sod.qfn.push(new SodCallbackInfo(fn, errorFn, expectedTypeName)); } return LoadSod(sod, bSync); } function LoadSodByKeySync(key) { return LoadSodByKey(key, null, true); } function LoadMultipleSods(keys, fn, bSync) { var total = keys.length; var keysDict = new Object; for (var j = 0; j < total; j++) { keysDict[keys[j]] = false; } var count = 0; var callback = function() { count++; if (count == total) { fn(); } }; for (var i = 0; i < total; i++) { var sodCallback = (function(key) { return function() { if (!Boolean(keysDict[key])) { keysDict[key] = true; callback(); } }; })(keys[i]); var result = LoadSodByKey(keys[i], sodCallback, bSync); if (result == Sods.loaded && !Boolean(keysDict[keys[i]])) { keysDict[keys[i]] = true; callback(); } } } var g_PendingLoadSodQueue; function IsSodLoaded(sod) { return sod.state == Sods.loaded && !Boolean(sod.reset); } function LoadSod(sod, bSync) { if (!bSync && typeof g_mdsReady != "undefined" && Boolean(g_mdsReady) && typeof g_MDSPageLoaded != "undefined" && !Boolean(g_MDSPageLoaded)) { if (g_PendingLoadSodQueue == null) g_PendingLoadSodQueue = []; var sodQueueEntry = { "sod": sod }; g_PendingLoadSodQueue.push(sodQueueEntry); return Sods.pending; } else { return LoadSodInternal(sod, bSync); } } function LoadPendingSods() { if (g_PendingLoadSodQueue != null) { var len = g_PendingLoadSodQueue.length; for (var i = 0; i < len; i++) { var sodQueueEntry = g_PendingLoadSodQueue[i]; LoadSodInternal(sodQueueEntry.sod, false); } g_PendingLoadSodQueue = null; } } function LoadSodInternal(sod, bSync) { if (sod == null) return Sods.missing; if (IsSodLoaded(sod) || !bSync && sod.state == Sods.loading) { return sod.state; } if (sod.state == Sods.error) { NotifyOnLoad(sod); return sod.state; } sod.state = Sods.pending; var mll = []; var depkeys = sod.depkeys; if (depkeys != null) { var i; var fDepLoaded = true; var am = depkeys.length; var sodDep; for (i = 0; i < am; i++) { var dep = NormalizeListViewSodKey(depkeys[i]); sodDep = _v_dictSod[dep]; if (sodDep == null) continue; if (!IsSodLoaded(sodDep)) { fDepLoaded = false; mll.push(sodDep); } } if (!fDepLoaded) { _v_qsod.push(sod); am = mll.length; for (i = 0; i < am; i++) { sodDep = mll[i]; if (!IsSodLoaded(sodDep) && (bSync || sodDep.state != Sods.loading && sodDep.state != Sods.error)) { LoadSodInternal(sodDep, bSync); } } if (!bSync) { return sod.state; } } } if (sod.reset) { if (Boolean(sod.url) && (window.location.pathname.toLowerCase()).endsWith("/_layouts/15/start.aspx") && "undefined" != typeof DeltaManager$_ScriptLoader$_loadTargetInternal) { DeltaManager$_ScriptLoader$_loadTargetInternal(sod.url, sod, sod.url != null); } } if (IsSodLoaded(sod) || !bSync && sod.state == Sods.loading) { return sod.state; } if (bSync) { var scriptToRun = ""; var req; if (browseris.ie9down) { var xdr = new XDomainRequest(); var loadedXDR = false; xdr.onerror = function() { loadedXDR = true; }; xdr.ontimeout = function() { loadedXDR = true; }; xdr.onload = function() { loadedXDR = true; }; xdr.open('GET', sod.url); xdr.send(); while (!loadedXDR) { req = new XMLHttpRequest; req.open('GET', "/_layouts/15/blank.htm", false); req.setRequestHeader("If-Modified-Since", (new Date()).toUTCString()); req.send(null); } scriptToRun = xdr.responseText; } else { req = new XMLHttpRequest; req.open('GET', sod.url, false); req.send(null); scriptToRun = req.responseText; } var ds = document.createElement('script'); (document.getElementsByTagName('head'))[0].appendChild(ds); var wasLoading = sod.state == Sods.loading; ds.text = scriptToRun; if (!browseris.ie || browseris.ie9standardUp) { ds.src = sod.url; } if (wasLoading && typeof sod.s != 'undefined') { var oldScriptElement = sod.s; sod.s = undefined; oldScriptElement.parentNode.removeChild(oldScriptElement); oldScriptElement.onreadystatechange = null; oldScriptElement.onload = null; } sod.state = Sods.loaded; if (wasLoading) { NotifyOnLoad(sod); } return sod.state; } else { var fStaticLoad = false; var head = (document.getElementsByTagName('head'))[0]; var scriptElements = head.getElementsByTagName('script'); var nScriptElements = scriptElements.length; var dummyScript = document.createElement('script'); dummyScript.src = sod.url; var sourceUrl = dummyScript.src; dummyScript = null; for (var iElement = 0; iElement < nScriptElements; iElement++) { var source = scriptElements[iElement].src; if (null != source && source.length > 0) { if (sourceUrl == source) { fStaticLoad = true; break; } } } if (fStaticLoad) { if (sod.reset) { if (Boolean(sod.url) && (window.location.pathname.toLowerCase()).endsWith("/_layouts/15/start.aspx") && "undefined" != typeof DeltaManager$_ScriptLoader$_loadTargetInternal) { DeltaManager$_ScriptLoader$_loadTargetInternal(sod.url, sod, sod.url != null); } } else { if (sod.state != Sods.error) sod.state = Sods.loaded; NotifyOnLoad(sod); } } else { sod.state = Sods.loading; var fn = GetOnLoad(sod); var onErrorFn = GetOnLoad(sod, true); var s = Define.loadScript(sod.url, fn, onErrorFn); sod.s = s; } return sod.state; } } function GetOnLoad(sod, asErrorHandler) { var fn = function() { if (asErrorHandler) sod.state = Sods.error; NotifyOnLoad(sod); }; return fn; } function NotifyOnLoad(sod) { function CallSodCallbacks() { if (sod.qfn != null) { var sodError = sod.state == Sods.error; while (sod.qfn.length > 0) { var callbackInfo = sod.qfn.shift(); var callError = Boolean(callbackInfo.error) && (sodError || Boolean(callbackInfo.expectedType) && !IsFullNameDefined(callbackInfo.expectedType)); if (callError) { callbackInfo.error(); } else if (!sodError) { callbackInfo.success(); } } } } var fn2 = function() { var sodError = sod.state == Sods.error; sod.reset = false; if (sod.key == "listview.js") { ResetListViewSods(false); } if (!sodError) { sod.state = Sods.loaded; while (_v_qsod.length > 0) { var sodParent = _v_qsod.pop(); if (sodParent.state == Sods.pending) { LoadSod(sodParent); break; } } } CallSodCallbacks(); if (_v_qsod.length == 0 && AreAllSodsLoaded() && !sodError) { var registerFunc = function() { var rWsa = GetRUMWSA(); if (IsNullOrUndefined(rWsa)) return; var isMDS = typeof g_mdsReady != "undefined" && Boolean(g_mdsReady); if (isMDS && typeof g_MDSPageLoaded != "undefined" && Boolean(g_MDSPageLoaded)) { if (!rWsa.get_IsMDSBlockCollected()) { var adm = asyncDeltaManager; if (!IsNullOrUndefined(adm)) { rWsa.AddMDSBlock(adm._admtt); } } rWsa.AddTTLB(); } }; if (!(typeof g_mdsReady != "undefined" && Boolean(g_mdsReady))) { var rumSod = _v_dictSod['sp.core.js']; if (IsNullOrUndefined(rumSod)) { return; } } EnsureScriptFunc('SP.core.js', "SP.RUMLogger", registerFunc); } }; if (browseris.ie8down) { setTimeout(fn2, 0); } else { fn2(); } } function EnsureScript(key, typ, fn, bSync, errorFn, expectedTypeName) { if (Boolean(bSync) && Boolean(errorFn)) { throw new Error("bSync==true && errorFn"); } var run = true; var nkey = NormalizeSodKey(key); var sod = _v_dictSod[nkey]; if (sod != null && sod.reset) { run = false; } if (typ != 'undefined' && run) { if (fn != null) fn(); return true; } LoadSodByKey(key, fn, bSync, errorFn, expectedTypeName); if (run) { return true; } return false; } function EnsureScriptFunc(key, typ, fn, errorFn) { EnsureScript(key, TypeofFullName(typ), fn, false, errorFn, typ); } function EnsureScriptParams() { if (arguments.length < 2) { return; } var args = arguments; var key = Array.prototype.shift.call(args); var func = Array.prototype.shift.call(args); var fn = function() { var fParts = func.split("."); var dynFuncRef = window; for (var i = 0, len = fParts.length; i < len; i++) { dynFuncRef = dynFuncRef[fParts[i]]; } ; var funcRef = dynFuncRef; funcRef.apply(null, args); }; EnsureScriptFunc(key, func, fn); } function NormalizeSodKey(key) { var lowerCaseKey = key.toLowerCase(); var lckl = lowerCaseKey.length; if (lckl >= 3 && ".js" == lowerCaseKey.substr(lckl - 3)) { key = lowerCaseKey; } else if (lowerCaseKey.indexOf(".resx") > 0) { var index = lowerCaseKey.indexOf(".resx"); key = (key.substr(0, index + 5)).toLowerCase() + key.substr(index + 5); } return key; } function ArrayIndexOf(array, item, startIdx) { if (typeof item === "undefined") return -1; var len = array.length; if (len !== 0) { startIdx = startIdx - 0; if (isNaN(startIdx)) { startIdx = 0; } else { if (isFinite(startIdx)) { startIdx = startIdx - startIdx % 1; } if (startIdx < 0) { startIdx = Math.max(0, len + startIdx); } } for (var i = startIdx; i < len; i++) { if (typeof array[i] !== "undefined" && array[i] === item) { return i; } } } return -1; } function SodCloneEvent(evt) { var e; if (browseris.ie) { e = document.createEventObject(evt); } else { e = document.createEvent("MouseEvents"); e.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); } return e; } function SodDispatchEvent(key, typ, evt) { var e = SodCloneEvent(evt); var fn; if (browseris.ie) { fn = function() { e.srcElement.fireEvent("onclick", e); }; } else { var t = evt.target; fn = function() { t.dispatchEvent(e); }; } if (!EnsureScript(key, typ, fn)) { if (browseris.ie) evt.cancelBubble = true; else evt.stopPropagation(); } } function AddTabHeadHandler(tid, fn) { var li = document.getElementById(tid); if (li != null) { var a = (li.getElementsByTagName('A'))[0]; AddEvtHandler(a, 'onclick', fn); } } function LoadWPAdderOnDemand() { if (typeof loadWPAdderCallback == 'function') { EnsureScriptParams("WPAdderClass", "WPAdderClassLoad", loadWPAdderCallback); } } function showSaveConflictDialog(lastModifiedUserId, continueStatusHtml, mergeChangesUrl, mergeChangesStatusHtml, discardScript, overwriteScript) { EnsureScriptParams("ribbon", "ribbon.showSaveConflictDialog", lastModifiedUserId, continueStatusHtml, mergeChangesUrl, mergeChangesStatusHtml, discardScript, overwriteScript); } function ClkElmt(e) { if (browseris.ie) e.click(); else FFClick(e); } function EnsureSelectionHandlerOnFocus(evt, cbx, ctxNum) { EnsureScriptFunc("core.js", "EnsureSelectionHandlerDeferred", function() { DeferCall("EnsureSelectionHandlerOnFocusDeferred", evt, cbx, ctxNum); }); } function EnsureSelectionHandler(evt, tab, ctxNum) { EnsureScriptFunc("core.js", "EnsureSelectionHandlerDeferred", function() { DeferCall("EnsureSelectionHandlerDeferred", evt, tab, ctxNum); }); } function StopEvt(evt) { if (!browseris.ie) evt.stopPropagation(); } function AddEvtHandler(ele, strEvt, func, useCapture) { if (Boolean(ele.addEventListener)) { useCapture = typeof useCapture != "undefined" && useCapture != null ? useCapture : false; ele.addEventListener(strEvt.substr(2), func, useCapture); } else if (Boolean(ele.attachEvent)) { ele.attachEvent(strEvt, func); } } function RemoveEvtHandler(ele, strEvt, func, useCapture) { if (Boolean(ele.removeEventListener)) { useCapture = typeof useCapture != "undefined" && useCapture != null ? useCapture : false; ele.removeEventListener(strEvt.substr(2), func, useCapture); } else if (Boolean(ele.detachEvent)) { ele.detachEvent(strEvt, func); } } function HideListViewRows(sid) { var t = document.getElementById(sid); if (t == null) return; resetSelectAllCbx(t); var inplviewHash = ajaxNavigate.getParam("InplviewHash"); if (null == inplviewHash) return; var strHash = inplviewHash.substr(0, 42); strHash = strHash.replace(/--/g, "-"); if (sid.length == 77) sid = sid.substr(39); else { var ctxId; var myCtx; if (sid.indexOf("onetidDoclibViewTbl") != 0) return; sid = sid.substr(19); if (sid == '0') { if (t.className.indexOf("ms-emptyView") >= 0) return; for (ctxId in g_ctxDict) { myCtx = g_ctxDict[ctxId]; sid = myCtx.view; break; } } else { myCtx = g_ctxDict['ctx' + sid]; sid = myCtx.view; } } if (strHash != sid) return; EnsureScriptParams("core.js", "AddCssClassToElement", t, "s4-hide-tr"); } function resetSelectAllCbx(tab) { var selectAllCbx = getSelectAllCbxFromTable(tab); if (selectAllCbx != null) selectAllCbx.checked = false; } function getSelectAllCbxFromTable(tab) { if (tab == null) return null; var rows = tab.rows; if (Boolean(rows) && rows.length > 0) { var headerRow = rows[0]; if (!Boolean(headerRow.className.indexOf("ms-viewheadertr"))) { var cells = headerRow.cells; if (cells.length > 0) { var cbx = (cells[0].getElementsByTagName("INPUT"))[0]; if (cbx != null) return cbx; cbx = cells[0].querySelector(".ms-selectall-span"); if (cbx != null) return cbx; } } } return null; } var g_pageIsDeRibboned; function WpClick(evt) { if (Boolean(g_pageIsDeRibboned)) return; var s = GetEventSrcElement(evt); var p = s; while (p != null && p.tagName != "BODY" && (p.className == null || p.className.indexOf == null || p.className.indexOf('s4-wpcell') < 0)) { if (p.tagName == 'A' && p.getAttribute('data-sp-continueWPSelect') == null) return; if (p.getAttribute('data-sp-cancelWPSelect') != null) return; if (p.tagName == 'DIV' && p.className != null && p.className.indexOf('s4-ctx') != -1) return; if (p.tagName == 'TH' && p.className != null && p.className.indexOf('ms-vh2') != -1) return; p = p.parentNode; } if (p != null && p.tagName != "BODY") { EnsureScriptParams("ribbon", "SelectWp", p); } } function WpKeyUp(evt) { var focusElt = GetEventSrcElement(evt); if (evt.keyCode == 32 && Boolean(focusElt) && focusElt.tagName == "INPUT" && (HasCssClass(focusElt, "s4-selectAllCbx") || HasCssClass(focusElt, "s4-itm-cbx"))) WpClick(evt); } function WzClick(evt, zid) { var s = GetEventSrcElement(evt); var p = s; while (p != null) { var z = p.getAttribute("ZoneID"); if (z == zid) break; if (p.tagName == 'A') return; p = p.parentNode; } if (p != null) { EnsureScriptParams("ribbon", "SelectWz", p, zid); } } function WpCbxSelect(evt) { var cbx = GetEventSrcElement(evt); var currentlySelected = cbx.checked; if (!currentlySelected) WpClick(evt); else EnsureScriptParams("ribbon", "DeselectWpWz"); TrapMenuClick(evt); if (evt.type != "keyup") cbx.className = "ms-webpart-checkboxHide"; } function WpCbxKeyHandler(evt) { var kCode; if (browseris.ie) kCode = evt.keyCode; else kCode = evt.which; if (kCode == 13) WpCbxSelect(evt); } function PopoutMenuMaybeSwapImage(anchorId, iconId, src) { var anchor = document.getElementById(anchorId); if (Boolean(anchor) && typeof anchor != 'undefined') { if (anchor.rel == '_spPopoutMenuIsOpen') return; SwapImage(iconId, src); } } function PopoutMenuMaybeSwapImageClustered(anchorId, iconId, src, x, y, height, width) { var anchor = document.getElementById(anchorId); if (Boolean(anchor) && typeof anchor != 'undefined') { if (anchor.rel == '_spPopoutMenuIsOpen') return; var span = document.getElementById(iconId); var img = span.firstChild; SwapImageInternal(img, src); span.style.height = height + "px"; span.style.width = width + "px"; img.style.top = "-" + y + "px"; img.style.left = "-" + x + "px"; } } function SwapImage(id, src) { var img = document.getElementById(id); SwapImageInternal(img, src); } function SwapImageInternal(img, src) { if (Boolean(img) && typeof img != 'undefined') img.src = src; } function GetViewportHeight() { return document.documentElement.clientHeight; } function GetViewportWidth() { return document.documentElement.clientWidth; } var g_viewportHeight, g_viewportWidth, g_wpadderHeight, g_setWidth, g_setWidthInited, g_workspaceResizedHandlers, g_setScrollPos; var g_frl; function FixRibbonAndWorkspaceDimensionsForResize() { if (g_frl) return; var vph = GetViewportHeight(); var vpw = GetViewportWidth(); if (g_viewportHeight == vph && g_viewportWidth == vpw) { return; } g_viewportHeight = vph; g_viewportWidth = vpw; window.setTimeout(FixRibbonAndWorkspaceDimensions, 0); } function FixRibbonAndWorkspaceDimensions() { g_frl = true; var elmRibbon = GetCachedElement("s4-ribbonrow"); var elmWorkspace = GetCachedElement("s4-workspace"); var elmTitleArea = GetCachedElement("s4-titlerow"); var elmBodyTable = GetCachedElement("s4-bodyContainer"); var elmFooter = GetCachedElement("footer"); var elmOverlay = GetCachedElement("ms-core-overlay"); var elmGlobalNavBox = GetCachedElement("globalNavBox"); var setWidth; if (!Boolean(elmRibbon) || !Boolean(elmWorkspace) || !Boolean(elmBodyTable)) { CallWorkspaceResizedEventHandlers(); return; } if (!g_setWidthInited) { setWidth = true; if (elmWorkspace.className.indexOf("s4-nosetwidth") > -1) setWidth = false; g_setWidth = setWidth; g_setWidthInited = true; } else { setWidth = g_setWidth; } var baseRibbonHeight = 0; var isDialog = Boolean((ajaxNavigate.get_search()).match(RegExp("[?&]IsDlg=1"))); if (Boolean(elmGlobalNavBox) && !isDialog) { baseRibbonHeight = RibbonIsMinimized() ? elmGlobalNavBox.offsetHeight : 126; } else { baseRibbonHeight = RibbonIsMinimized() ? 35 : 126; } var ribbonHeight = baseRibbonHeight + g_wpadderHeight; if (GetCurrentEltStyle(elmRibbon, "visibility") == "hidden") { ribbonHeight = 0; } if (Boolean(elmTitleArea)) { if (RibbonIsMinimized()) { elmTitleArea.className = elmTitleArea.className.replace(RegExp("s4-titlerowhidetitle"), ""); elmTitleArea.style.display = "block"; } else { var cn = elmTitleArea.className; if (cn.indexOf("s4-titlerowhidetitle") < 0) elmTitleArea.className = cn.concat("s4-titlerowhidetitle"); elmTitleArea.style.display = "none"; } } elmRibbon.style.height = String(ribbonHeight) + "px"; var ribbonElement = GetCachedElement("s4-ribbonrow"); var webPartAdderElement = ribbonElement.querySelector(".ms-core-webpartadder"); if (Boolean(webPartAdderElement) && GetCurrentEltStyle(webPartAdderElement, "position") == "absolute") { var wpaTop = ribbonHeight; var ribbonHeaderElement = document.getElementById("Ribbon"); if (Boolean(ribbonHeaderElement)) { var ribbonTabBodyElement = ribbonHeaderElement.querySelector(".ms-cui-tabContainer"); if (RibbonIsMinimized() || !Boolean(ribbonTabBodyElement)) wpaTop = AbsTop(ribbonHeaderElement) + ribbonHeaderElement.offsetHeight; else wpaTop = AbsTop(ribbonTabBodyElement) + ribbonTabBodyElement.offsetHeight; wpaTop -= AbsTop(ribbonElement); webPartAdderElement.style.top = wpaTop.toString() + "px"; } else { webPartAdderElement.style.top = baseRibbonHeight.toString() + "px"; } } var vph = g_viewportHeight; if (null === vph) { vph = GetViewportHeight(); g_viewportHeight = vph; } var newWorkspaceHeight = vph - AbsTop(elmWorkspace); if (newWorkspaceHeight < 0) newWorkspaceHeight = 0; if (!browseris.ipad || !isDialog) elmWorkspace.style.height = String(newWorkspaceHeight) + "px"; if (Boolean(elmOverlay) && !isDialog) { var overlayHeight = newWorkspaceHeight; if (overlayHeight < 0) overlayHeight = 0; elmOverlay.style.height = String(overlayHeight) + "px"; } if (setWidth) { elmWorkspace.style.width = String(document.documentElement.clientWidth) + "px"; if (elmBodyTable.offsetWidth < elmWorkspace.clientWidth) elmBodyTable.style.width = String(elmWorkspace.clientWidth) + "px"; } var isIE7 = browseris.ie && browseris.iever == 7 && !browseris.ie8standard; if (!g_setScrollPos) { if (browseris.firefox && browseris.firefox36up) window.scrollTo(0, 0); if (Boolean((ajaxNavigate.get_search()).match(RegExp("[?&]IsDlg=1")))) { if (!isIE7 || elmWorkspace.scrollHeight < elmWorkspace.clientHeight) elmWorkspace.style.overflowY = "auto"; } var scrollElem = document.getElementById("_maintainWorkspaceScrollPosition"); if (scrollElem != null && scrollElem.value != null) { var scrollValue = Number(scrollElem.value); var blogList = GetElementByClassName(elmWorkspace, "ms-blog-postList"); if (blogList != null && scrollValue > 0) { var listTop = (blogList.getBoundingClientRect()).top; elmWorkspace.scrollTop = (blogList.getBoundingClientRect()).top - (elmWorkspace.getBoundingClientRect()).top; } else { elmWorkspace.scrollTop = scrollValue; } } g_setScrollPos = true; } CallWorkspaceResizedEventHandlers(); g_frl = false; } function CallWorkspaceResizedEventHandlers() { var handlers = [].concat(g_workspaceResizedHandlers); for (var i = 0, wLen = handlers.length; i < wLen; i++) { handlers[i](); } } function RibbonIsMinimized() { if (g_spribbon.isInited) { return g_spribbon.isMinimized; } else { if (typeof _ribbon == "undefined" || null === _ribbon) return true; else return typeof _ribbon.buildMinimized == "undefined" ? undefined : _ribbon.buildMinimized; } } var g_spribbon; function OnRibbonMinimizedChanged(ribbonMinimized) { if ((ajaxNavigate.get_search()).indexOf("IsDlg=1") != -1) return; ExecuteOrDelayUntilScriptLoaded(function() { AnimateRibbonMinimizedChanged(ribbonMinimized); }, "core.js"); } function PreRibbonTabSwitched(ribbonMinimized) { ExecuteOrDelayUntilScriptLoaded(function() { g_fSkipAnimation = false; PrepareRibbonForAnimation(ribbonMinimized, true); }, "core.js"); } function CatchCreateError(strIgnore1, strIgnore2, strIgnore3) { return true; } function ExpandBody(guid, anchor) { if (typeof MSOWebPartPageFormName == "undefined") return false; var frm = document.forms[MSOWebPartPageFormName]; var CAML_Expand = frm.elements['CAML_Expand']; CAML_Expand.value = CAML_Expand.value.concat(guid); frm.action = frm.action.concat("#" + anchor); frm.submit(); return false; } function CollapseBody(guid, anchor) { if (typeof MSOWebPartPageFormName == "undefined") return false; var frm = document.forms[MSOWebPartPageFormName]; var reg = new RegExp("\{", "g"); guid = guid.replace(reg, "\\\{"); reg = new RegExp("\}", "g"); guid = guid.replace(reg, "\\\}"); reg = new RegExp(guid, "g"); var CAML_Expand = frm.elements['CAML_Expand']; CAML_Expand.value = CAML_Expand.value.replace(reg, ""); var CAML_ShowOriginalEmailBody = frm.elements['CAML_ShowOriginalEmailBody']; CAML_ShowOriginalEmailBody.value = CAML_ShowOriginalEmailBody.value.replace(reg, ""); frm.action = frm.action.concat("#" + anchor); frm.submit(); return false; } function ShowQuotedText(guid, anchor) { if (typeof MSOWebPartPageFormName == "undefined") return false; var frm = document.forms[MSOWebPartPageFormName]; var CAML_ShowOriginalEmailBody = frm.elements['CAML_ShowOriginalEmailBody']; CAML_ShowOriginalEmailBody.value = CAML_ShowOriginalEmailBody.value.concat(guid); if (frm.action.indexOf("#") > 0) { frm.action = frm.action.substr(0, frm.action.indexOf("#")); } frm.action = frm.action.concat("#" + anchor); frm.submit(); return false; } function HideQuotedText(guid, anchor) { if (typeof MSOWebPartPageFormName == "undefined") return false; var frm = document.forms[MSOWebPartPageFormName]; var reg = new RegExp("\{", "g"); guid = guid.replace(reg, "\\\{"); reg = new RegExp("\}", "g"); guid = guid.replace(reg, "\\\}"); reg = new RegExp(guid, "g"); var CAML_ShowOriginalEmailBody = frm.elements['CAML_ShowOriginalEmailBody']; CAML_ShowOriginalEmailBody.value = CAML_ShowOriginalEmailBody.value.replace(reg, ""); if (frm.action.indexOf("#") > 0) { frm.action = frm.action.substr(0, frm.action.indexOf("#")); } frm.action = frm.action.concat("#" + anchor); frm.submit(); return false; } var v_stsOpenDoc2; var v_strStsOpenDoc2; function StsOpenEnsureEx2(szProgId) { if (v_stsOpenDoc2 == null || v_strStsOpenDoc2 != szProgId) { v_stsOpenDoc2 = null; v_strStsOpenDoc2 = null; var plugin; if (Boolean(window.ActiveXObject)) { try { v_stsOpenDoc2 = new ActiveXObject(szProgId); v_strStsOpenDoc2 = szProgId; } catch (e) { v_stsOpenDoc2 = null; v_strStsOpenDoc2 = null; } ; } else if (IsSupportedMacBrowser() && szProgId.indexOf("SharePoint.OpenDocuments") >= 0) { plugin = CreateMacPlugin(); if (plugin != null) { v_stsOpenDoc2 = plugin; v_strStsOpenDoc2 = "SharePoint.MacPlugin"; } } else if (IsSupportedNPApiBrowserOnWin() && szProgId.indexOf("SharePoint.OpenDocuments") >= 0) { plugin = CreateNPApiOnWindowsPlugin("application/x-sharepoint"); if (plugin != null) { v_stsOpenDoc2 = plugin; v_strStsOpenDoc2 = "SharePoint.FFWinPlugin"; } } } return v_stsOpenDoc2; } function HasValidUrlPrefix(url) { var urlLower = url.toLowerCase(); if (-1 == urlLower.search(RegExp("^http://")) && -1 == urlLower.search(RegExp("^https://"))) return false; return true; } function IsLeavingObject(ev, obj) { var to; if (!Boolean(ev)) ev = window.event; to = Boolean(ev.toElement) ? ev.toElement : ev.relatedTarget; if (null == to) return false; while (to != obj && to != null) to = to.parentNode; return to != obj; } var deleteInstance; function DeleteItemConfirmation() { var message = ""; if (typeof ItemIsCopy != "undefined") if (ItemIsCopy) message = Strings.STS.L_NotifyThisIsCopy_Text; if (cascadeDeleteWarningMessage != "") { message += cascadeDeleteWarningMessage; } if (recycleBinEnabled == 1 && deleteInstance != 1) message += Strings.STS.L_STSRecycleConfirm_Text; else message += Strings.STS.L_STSDelConfirm_Text; return confirm(message); } function DeleteInstanceConfirmation() { deleteInstance = 1; return DeleteItemConfirmation(); } function CancelMultiPageConfirmation(redirectUrl) { var message = ""; if (recycleBinEnabled == 1) message = Strings.STS.L_DeletePartialResponse1_text; else message = Strings.STS.L_DeletePartialResponse2_text; if (confirm(message) == true) return true; else Nav.navigate(redirectUrl); return false; } function RestoreItemVersionConfirmation() { var message = Strings.STS.L_Version_Restore_Confirm_Text; return confirm(message); } function DeleteItemVersionConfirmation(bRecycleBinEnabled) { if (bRecycleBinEnabled) return confirm(Strings.STS.L_Version_Recycle_Confirm_Text); else return confirm(Strings.STS.L_Version_Delete_Confirm_Text); } function DeleteUserInfoItemConfirmation() { var message = Strings.STS.L_User_Delete_Confirm_Text; return confirm(message); } function UnlinkCopyConfirmation(strItemUrl) { return confirm(Strings.STS.L_ConfirmUnlinkCopy_Text); } function SupportsNavigateHttpFolder() { return browseris.ie5up; } function MtgDeletePageConfirm() { var text; if ((document.getElementById("MtgTlPart_PageType")).value == 'MtgTlPart_LocalPage') text = Strings.STS.L_DeleteConfirm_Text; else text = Strings.STS.L_DeleteGlobalConfirm_Text + Strings.STS.L_DeleteConfirm_Text; return confirm(text); } function IsImgLibJssLoaded() { if (typeof fImglibJssLoaded != "undefined") return fImglibJssLoaded; return false; } function GetFirstChildElement(e) { for (var i = 0; i < e.childNodes.length; i++) { if (e.childNodes[i].nodeType == 1) return e.childNodes[i]; } return null; } function TestGCObject(GCObject) { if (browseris.ie55up && typeof GCObject == "undefined" || GCObject == null || typeof GCObject.object == 'undefined' || GCObject.object == null) return false; return true; } function MMU_GetMenuFromClientId(clientId) { return document.getElementById(clientId); } function MMU_EcbLinkOnKeyDown(menu, ecbLink, e) { if (e == null) { e = window.event; if (e == null) return false; } var nKeyCode = GetEventKeyCode(e); var hasHref = ecbLink.href != null && ecbLink.href.length > 0; if ((e.shiftKey || !hasHref) && nKeyCode == 13 || nKeyCode == 32 || e.altKey && nKeyCode == 40) { var image = byid(ecbLink.id + "_ti"); if (image == null) { var serverClientId = ecbLink.getAttribute("serverclientid"); if (serverClientId != null && serverClientId.length > 0) { image = byid(serverClientId + "_ti"); } } if (image != null) { ClkElmt(image); } else { ClkElmt(ecbLink); } return false; } else { return true; } } var firstCalled; var _callbackinitdelayed; function DeferWebFormInitCallback() { if (typeof WebForm_InitCallback == 'function' && "undefined" == typeof WebForm_InitCallback["deferred"] && typeof window['_WebForm_InitCallback'] == 'undefined') window['_WebForm_InitCallback'] = window['WebForm_InitCallback']; function funcInitCallback() { if (firstCalled) { firstCalled = false; _callbackinitdelayed = true; _spBodyOnLoadFunctionNames.push('WebForm_InitCallback'); } else { _callbackinitdelayed = false; if (typeof window._WebForm_InitCallback == 'function') window._WebForm_InitCallback(); } } ; funcInitCallback["deferred"] = true; window['WebForm_InitCallback'] = funcInitCallback; if (typeof WebForm_DoCallback == 'function' && "undefined" == typeof WebForm_DoCallback["deferred"] && typeof window['_WebForm_DoCallback'] == 'undefined') window['_WebForm_DoCallback'] = window['WebForm_DoCallback']; function funcDoCallback(eventTarget, eventArgument, eventCallback, context, errorCallback, useAsync) { if (_callbackinitdelayed) { _callbackinitdelayed = false; if (_spBodyOnLoadFunctionNames != null) { var count = _spBodyOnLoadFunctionNames.length; for (var i = 0; i < count; i++) { if (_spBodyOnLoadFunctionNames[i] == "WebForm_InitCallback") { _spBodyOnLoadFunctionNames.splice(i, 1); break; } } } if (typeof window._WebForm_InitCallback == 'function') window._WebForm_InitCallback(); } window['_WebForm_DoCallback'](eventTarget, eventArgument, eventCallback, context, errorCallback, useAsync); } ; funcDoCallback["deferred"] = true; window['WebForm_DoCallback'] = funcDoCallback; } function _ribbonShouldFixRtlHeaders(isRtl) { return browseris.ie && browseris.iever == 7 && !browseris.ie8standard && isRtl; } var g_spDragDropUpload; function WPQRegisterDragDropUpload() { var registerFunc = function() { for (var wpqKey in g_spDragDropUpload) { var uploadInfo = g_spDragDropUpload[wpqKey]; var WPQDiv = document.getElementById(wpqKey); if (WPQDiv != null && typeof WPQDiv != 'undefined') { registerDragUpload(WPQDiv, uploadInfo.serverUrl, uploadInfo.siteRelativeUrl, uploadInfo.listName, uploadInfo.rootFolder, uploadInfo.overwriteAll, uploadInfo.hideProgressBar, uploadInfo.refreshFunc, uploadInfo.preUploadFunc, uploadInfo.postUploadFunc, uploadInfo.checkPermissionFunc); } } }; EnsureScriptFunc('DragDrop.js', "registerDragUpload", registerFunc); } function SPDragUploadInfo(webPartId, serverUrl, siteRelativeUrl, listName, rootFolder, overwriteAll, hideProgressBar, refreshFunc, preUploadFunc, postUploadFunc, checkPermissionFunc) { this.webPartId = webPartId; this.serverUrl = serverUrl; this.siteRelativeUrl = siteRelativeUrl; this.listName = listName; this.rootFolder = rootFolder; this.overwriteAll = overwriteAll; this.hideProgressBar = hideProgressBar; this.refreshFunc = refreshFunc; this.preUploadFunc = preUploadFunc; this.postUploadFunc = postUploadFunc; this.checkPermissionFunc = checkPermissionFunc; } var g_QuickLaunchControlIds; function _registerCommonComponents() { SP.Ribbon.HelpPageComponent.registerWithPageManager(); SP.Ribbon.UserInterfacePageComponent.registerWithPageManager(); } function ExecuteAndRegisterBeginEndFunctions(script, beginFunc, endFunc, loadFunc) { RegisterBeginEndFunctions(script, script, beginFunc, endFunc, loadFunc); if (null != beginFunc) { beginFunc(); } if (null != endFunc) { endFunc(); } if (null != loadFunc) { loadFunc(); } } function RegisterBeginEndFunctions(script, tag, beginFunc, endFunc, loadFunc) { if ("string" != typeof tag) throw "Unexpected"; if (!(null == beginFunc || "function" == typeof beginFunc)) throw "Unexpected"; if (!(null == endFunc || "function" == typeof endFunc)) throw "Unexpected"; if (!(null == loadFunc || "function" == typeof loadFunc)) throw "Unexpected"; if (!g_supportFiles[tag]) { g_supportFiles[tag] = { tag: tag, scriptURI: new URI(script), beginFunc: beginFunc, endFunc: endFunc, loadFunc: loadFunc, executed: false }; } } function RegisterModuleInit(scriptFileName, initFunc) { RegisterBeginEndFunctions(scriptFileName, scriptFileName, initFunc, null, null); } function SetElementStyle(ctlId, styleName) { var elmScope = document.getElementById(ctlId); if (typeof elmScope != 'undefined' && elmScope != null && elmScope.className != styleName) { elmScope.className = styleName; } } function RemoveCachingParamsFromUrl(sourceUrl) { return RemoveQueryParameterFromUrl(RemoveQueryParameterFromUrl(sourceUrl, 'rev'), 'ctag'); } function registerCssLink(cssLink, callback, bUnthemable) { _registerCssLink(cssLink, null, function(e) { if ("undefined" != typeof g_MinimalDownload && g_MinimalDownload && 'undefined' != typeof asyncDeltaManager && 'undefined' != typeof AsyncDeltaManager$_registerLinkCallback) { AsyncDeltaManager$_registerLinkCallback(e); } if ('function' == typeof callback) { callback(e); } }, null, bUnthemable); } function _ensureCssLink(cssLink, callback) { var ret = _registerCssLink(cssLink, null, null, callback); if (ret == 0 && callback != null) callback(); return ret; } function setAdditionalCssLinkAttributes(link, linkContent) { if (null == link || null == linkContent) { return; } var originalHref = linkContent["data-original-href"]; if (null != originalHref) { link.setAttribute("data-original-href", originalHref); } } function _registerCssLink(cssLink, head, callback, loadCompletedCallback, bUnthemable, linkContent) { var found = false; var retval = 0; if (null == head) { head = (document.getElementsByTagName('head'))[0]; } var useClientSideTheming = !bUnthemable && SPThemeUtils.UseClientSideTheming(); var links = head.getElementsByTagName(useClientSideTheming ? 'style' : 'link'); var linksCount = links.length; var sourceURL = useClientSideTheming ? cssLink : GetAbsoluteUrl(cssLink); for (var j = 0; j < linksCount; j++) { if (links[j].rel == "stylesheet" && links[j].type == "text/css" || useClientSideTheming && links[j].hasAttribute("data-ThemingSource")) { var source = useClientSideTheming ? links[j].getAttribute("data-ThemingSource") : links[j].href; if (null != source && source.length > 0) { if (sourceURL == source) { var deleteAttrib = links[j].getAttribute("toDelete"); if (Boolean(deleteAttrib)) links[j].removeAttribute("toDelete"); if (null != linkContent) { setAdditionalCssLinkAttributes(links[j], linkContent); } found = true; break; } if (RemoveCachingParamsFromUrl(sourceURL) == RemoveCachingParamsFromUrl(source)) { return -1; } } } } if (useClientSideTheming && !found) { var newElement; var originalUrl; if (null != linkContent) { originalUrl = linkContent["data-original-href"]; } newElement = (Theming.GetPageManager()).AddCssLink(cssLink, originalUrl, null, loadCompletedCallback, null); if (null != callback) { callback(newElement); } retval = 1; } else if (!found) { var aLink = document.createElement("link"); aLink.rel = "stylesheet"; aLink.type = "text/css"; aLink.href = cssLink; head.appendChild(aLink); if (null != linkContent) { setAdditionalCssLinkAttributes(aLink, linkContent); } if (browseris.chrome || browseris.safari) { var pollInterval = 10; var startTime = Number(new Date()); var maxPollTime = 500; setTimeout(bindArguments(function CssLinkCallback(timestart, myLink) { if (myLink != null) { if (typeof myLink.sheet == "undefined" || myLink.sheet == null || typeof myLink.sheet.cssRules == "undefined" || myLink.sheet.cssRules == null) { if (Number(new Date()) - timestart < maxPollTime) setTimeout(bindArguments(CssLinkCallback, timestart, myLink), pollInterval); else if (typeof loadCompletedCallback == "function") loadCompletedCallback(); } else if (myLink.sheet.cssRules && typeof loadCompletedCallback == "function") loadCompletedCallback(); } }, startTime, aLink), pollInterval); } else { if (typeof loadCompletedCallback == "function") { $addHandler(aLink, 'load', loadCompletedCallback); if (Boolean(aLink.addEventListener)) aLink.addEventListener('error', loadCompletedCallback, false); } } if (null != callback) { callback(aLink); } retval = 1; } return retval; } function replacePlaceholderElement(elementId, markupText) { var el = document.getElementById(elementId); var el2 = document.createElement("span"); var p = el.parentNode; el2.innerHTML = markupText; var len = el2.childNodes.length; switch (len) { case 0: break; case 1: p.replaceChild(el2.childNodes[0], el); break; default: for (var i = 0; i < len; i++) { p.insertBefore(el2.childNodes[0], el); } p.removeChild(el); break; } } function fIsNullOrUndefined(obj) { return typeof obj == "undefined" || obj == null; } function IsStrNullOrEmpty(str) { return str == null || str.length == 0; } function bindArguments() { var args = arguments; var fn = Array.prototype.shift.call(args); return function() { return fn.apply(this, args); }; } function OpenSuiteLinksJson() { var linksJson = null; GetSuiteLinks(null, function(suiteLinks) { linksJson = suiteLinks; }); return linksJson; } function RecordClick(strClickType, strClickData) { EnsureScriptFunc("sp.pageinstrumentation.js", "SP.PageInstrumentation.Clicks", function() { SP.PageInstrumentation.Clicks.recordClick(strClickType, strClickData); }); } function RecordClickForPaging(strClickType, strClickData, strPageId) { EnsureScriptFunc("sp.pageinstrumentation.js", "SP.PageInstrumentation.Clicks", function() { SP.PageInstrumentation.Clicks.recordClickForPaging(strClickType, strClickData, strPageId); }); } function RecordClickClientId(strClickType, clientId) { EnsureScriptFunc("sp.pageinstrumentation.js", "SP.PageInstrumentation.Clicks", function() { SP.PageInstrumentation.Clicks.recordClickClientId(strClickType, clientId); }); } function LogRUMExtendedAction(actionName, actionId, actionGuid, actionDate, actionType) { EnsureScriptFunc("sp.core.js", "SP.SlapiInternal", function() { var slapiInternal = SP.SlapiInternal; var action = new slapiInternal.RUMExtended(); action.ActionName = actionName; if (typeof actionId != 'undefined' && actionId != null) { action.ActionId = actionId; } if (typeof actionGuid != 'undefined' && actionGuid != null) { action.ActionGuid = actionGuid; } if (typeof actionDate != 'undefined' && actionDate != null) { action.ActionDate = actionDate; } else { action.ActionDate = (new Date()).getTime(); } if (typeof actionType != 'undefined' && actionType != null) { action.ActionType = actionType; } WriteLog(action); }); } function _AddTrySPListNextBanner(isList) { var bannerHtml = '\
\
\ \
\
\

' + STSHtmlEncode(Boolean(isList) ? Strings.STS.L_ListNewLookHeading : Strings.STS.L_DocLibNewLookHeading) + '\ \ \ \ \  + StAttrQuote(Strings.STS.L_DocLibNewLookDismiss) + \ \ \ \ \

\

' + STSHtmlEncode(Strings.STS.L_DocLibNewLookBody) + '

\ \
\
\
\n'; var bannerCloseCount = new BrowserCachedNumber("SPNewDoclibBannerClose"); var bannerClosedSession = new BrowserCachedNumber("SPNewDoclibBannerClosedSession", true); if (bannerCloseCount.getValue() > 1 || bannerClosedSession.getValue() > 0) return; var _splnBannerId = "doclibNewLookBanner"; var splnBannerDiv = document.createElement("div"); splnBannerDiv.id = _splnBannerId; splnBannerDiv.innerHTML = bannerHtml; var pageStatusElement = document.getElementById("pageStatusBar"); var pageStatusParent = pageStatusElement ? pageStatusElement.parentNode : null; if (!pageStatusParent) return; pageStatusParent.insertBefore(splnBannerDiv, pageStatusElement); var spnlClose = document.getElementById("doclibNewLookClose"); if (spnlClose) { AddEvtHandler(spnlClose, "onclick", closeBannerSPLN); } var spnlTry = document.getElementById("doclibNewLookTry"); if (spnlTry) { AddEvtHandler(spnlTry, "onclick", trySPLN); } LogUserEngagement("NewDoclibExperience_Banner_Rendered"); function closeBannerSPLN() { var bannerElement = document.getElementById(_splnBannerId); if (bannerElement && bannerElement.parentNode) { bannerElement.parentNode.removeChild(bannerElement); bannerElement = null; } bannerClosedSession.incrementValue(); var newCloseCount = bannerCloseCount.incrementValue(); LogUserEngagement("NewDoclibExperience_Banner_Close" + newCloseCount.toString(10)); } function trySPLN() { bannerCloseCount.resetValue(); LogUserEngagement("NewDoclibExperience_Banner_Try"); document.cookie = "splnu=1;path=/;"; document.location.reload(); } function LogUserEngagement(strEventTag) { if (typeof SP != "undefined" && SP != null && SP.QoS != null) SP.QoS.WriteUserEngagement(strEventTag); } function BrowserCachedNumber(strCacheKey, bSessionCache) { this._cacheKey = strCacheKey; this._storage = !bSessionCache ? BrowserStorage.local : BrowserStorage.session; this.getValue = function() { var cachedValue = Number(this._storage.getItem(this._cacheKey)); return cachedValue ? cachedValue : 0; }; this.incrementValue = function() { var updatedValue = this.getValue() + 1; this._storage.setItem(this._cacheKey, updatedValue); return updatedValue; }; this.resetValue = function() { this._storage.removeItem(this._cacheKey); }; } } function HandleDLPStatus() { if (document.getElementById("pageStatusBar") != null) { EnsureScriptFunc("core.js", "ProcessDLPStatus", function() { ProcessDLPStatus(); }); } } function GetCachedProfile() { return ProfileCache.GetCachedProfile(); } function UserProfileLocalStoreKey() { return ProfileCache.UserProfileLocalStoreKey(); } function getCtx(webPartID) { if (fIsNullOrUndefined(g_ctxDict)) return undefined; for (var contextId in g_ctxDict) { var contx = g_ctxDict[contextId]; if (webPartID == "WebPart" + contx.wpq) return contx; } return undefined; } function PageMinimized() { if (typeof PageMinimized.minimized === 'undefined') { var url = new URI(ajaxNavigate.get_href()); PageMinimized.minimized = Boolean(url.getQueryParameter("Minimized")); if (PageMinimized.minimized) { AddCssClassToElement(document.body, "ms-fullscreenmode"); } } return PageMinimized.minimized; } function GoToModern(bReturn) { if (typeof SP != "undefined" && SP != null && SP.QoS != null) SP.QoS.WriteUserEngagement(bReturn ? "Return_To_Modern_UX" : "Go_To_Modern_UX"); document.cookie = "splnu=1;path=/"; if (!(window["OffSwitch"] == null || OffSwitch.IsActive("9AC29D85-49C4-41FC-B1E2-5BB42628DC6C")) && browseris.ie && !browseris.ie11up) window.open(window.location.href, '_blank'); else window.location.reload(); } function IsXhrAborted(xhr) { try { if (xhr.readyState == 4 && (typeof xhr.status == "undefined" || xhr.status == 0)) return true; } catch (e) { return true; } return false; } function IsXhrGoodAndReady(xhr) { try { if (xhr.readyState == 4 && xhr.status == 200) return true; } catch (e) { return false; } return false; } function IsXhrReady(xhr) { try { if (xhr.readyState == 4) return true; } catch (e) { return false; } return false; } function OverrideDefaultMethod(methodName, alternateMethodName, argCount) { return SupplementDefaultMethod(methodName, alternateMethodName, argCount, true); } function SupplementDefaultMethod(methodName, alternateMethodName, argCount, override) { var browserMethod = window[methodName]; try { if (window.opener != null && window.opener["LogFromProduct"] != null) { var verb = override ? "Overriding" : "Supplementing"; window.opener["LogFromProduct"]("SupplementDefaultMethod -- " + verb + " " + methodName + " with " + alternateMethodName); } } catch (e) { } window[methodName] = function(arg1, arg2, arg3, arg4, arg5) { var getReturnValue = function(wnd) { if (argCount == 1) { return wnd[alternateMethodName](arg1); } else if (argCount == 3) { return wnd[alternateMethodName](arg1, arg2, arg3); } else if (argCount == 5) { return wnd[alternateMethodName](arg1, arg2, arg3, arg4, arg5); } else { throw "Unexpected argument count in SupplementDefaultMethod"; } }; var ret; try { if (Boolean(window.opener) && window != window.opener && Boolean(window.opener[alternateMethodName])) { ret = getReturnValue(window.opener); if (override) return ret; } else if (Boolean(window.frameElement) && Boolean(window.parent) && window != window.parent && typeof window.parent.opener != "undefined" && Boolean(window.parent.opener) && window != window.parent.opener && window.parent != window.parent.opener && Boolean(window.parent.opener[alternateMethodName])) { ret = getReturnValue(window.parent.opener); if (override) return ret; } } catch (e) { } if (Boolean(browserMethod)) { return Function.prototype.apply.call(browserMethod, window, arguments); } return null; }; } var IMNControlObj; var bIMNControlInited; var IMNDictionaryObj; var IMNDictionaryPresenceTextObj; var bIMNSorted; var bIMNOnloadAttached; var IMNOrigScrollFunc; var bIMNInScrollFunc; var IMNSortableObj; var IMNHeaderObj; var IMNNameDictionaryObj; var IMNNameDictionaryPresenceTextObj; var IMNShowOfflineObj; var OwaLang; var OwaRoot; var OwaSharedHoverCardJsKey; var OwaSharedHoverCardStringsJsKey; var ActiveSharedHoverCard; var ActiveUserField; var SharedHoverCardHideTimer; var SharedHoverCardHideTime; var SharedHoverCardDelayTimer; var SharedHoverCardDelayTime; var SharedHoverCardDelayed; var SharedHoverCardContainer; var sharedHoverCardShimParameters; var SharedHoverCardShimParameters; var sharedHoverCardShim; var SharedHoverCardShim; var serverSettings; var slabManifest; var jQueryPatch; var SharedHoverCardDependenciesLoaded; var SharedHoverCardDependenciesRegistered; var FallbackToActiveX; var SharedHoverCardBootStrapped; var SharedHoverCardPending; var currentShowHoverCardInstance; var nextShowHoverCardInstance; var currentShowHoverCardInstanceBootstrappedState; function GetCurrentEvent(objEvent) { if (browseris.ie5up) return window.event; if (Boolean(objEvent)) return objEvent; return window.event; } function GetEventTarget(objEvent) { if (Boolean(objEvent.srcElement)) return objEvent.srcElement; return objEvent.target; } function EnsureIMNControl() { if (!bIMNControlInited || IMNControlObj == null) { var serverPresenceEnabled = typeof g_presenceEnabled != "undefined" && g_presenceEnabled; try { if (IsSupportedMacBrowser()) { IMNControlObj = CreateMacPlugin(); } else if (IsSupportedNPApiBrowserOnWin()) { IMNControlObj = CreateNPApiOnWindowsPlugin("application/x-sharepoint-uc"); if (IMNControlObj != null && serverPresenceEnabled) IMNControlObj.OnStatusChange = IMNOnStatusChange; } else if (browseris.ie5up) { if (Boolean(window.ActiveXObject)) { IMNControlObj = new ActiveXObject("Name.NameCtrl.1"); if (IMNControlObj && serverPresenceEnabled) { var onStatusChange; if (IsSupportedMacBrowser()) onStatusChange = "IMNOnStatusChange"; else onStatusChange = IMNOnStatusChange; IMNControlObj.OnStatusChange = onStatusChange; } } } bIMNControlInited = true; } catch (e) { IMNControlObj = null; } AddEvtHandler(window, "onbeforeunload", DiscardIMNControl); } return IMNControlObj; } function DiscardIMNControl() { if (typeof IMNHideOOUI == 'undefined' || typeof IMNControlObj == 'undefined' || typeof bIMNControlInited == 'undefined') { return; } IMNHideOOUI(); IMNControlObj = null; bIMNControlInited = false; } function IMNImageInfo_InitializePrototype() { IMNImageInfo.prototype.img = null; IMNImageInfo.prototype.classPrefix = null; IMNImageInfo.prototype.alt = ''; } function IMNImageInfo() { } function IMNGetStatusImage(state, showoffline) { var img = "spimn.png"; var classPrefix = "ms-spimn-presence-disconnected"; var alt = ""; switch (state) { case 0: classPrefix = "ms-spimn-presence-online"; alt = Strings.STS.L_IMNOnline_Text; break; case 11: classPrefix = "ms-spimn-presence-online-oof"; alt = Strings.STS.L_IMNOnline_OOF_Text; break; case 1: if (showoffline) { classPrefix = "ms-spimn-presence-offline"; alt = Strings.STS.L_IMNOffline_Text; } else { classPrefix = ""; alt = ""; } break; case 12: if (showoffline) { classPrefix = "ms-spimn-presence-offline-oof"; alt = Strings.STS.L_IMNOffline_OOF_Text; } else { classPrefix = ""; alt = ""; } break; case 2: classPrefix = "ms-spimn-presence-away"; alt = Strings.STS.L_IMNAway_Text; break; case 13: classPrefix = "ms-spimn-presence-away-oof"; alt = Strings.STS.L_IMNAway_OOF_Text; break; case 3: classPrefix = "ms-spimn-presence-busy"; alt = Strings.STS.L_IMNBusy_Text; break; case 14: classPrefix = "ms-spimn-presence-busy-oof"; alt = Strings.STS.L_IMNBusy_OOF_Text; break; case 4: classPrefix = "ms-spimn-presence-away"; alt = Strings.STS.L_IMNAway_Text; break; case 5: classPrefix = "ms-spimn-presence-busy"; alt = Strings.STS.L_IMNBusy_Text; break; case 6: classPrefix = "ms-spimn-presence-away"; alt = Strings.STS.L_IMNAway_Text; break; case 7: classPrefix = "ms-spimn-presence-busy"; alt = Strings.STS.L_IMNBusy_Text; break; case 8: classPrefix = "ms-spimn-presence-away"; alt = Strings.STS.L_IMNAway_Text; break; case 9: classPrefix = "ms-spimn-presence-donotdisturb"; alt = Strings.STS.L_IMNDoNotDisturb_Text; break; case 15: classPrefix = "ms-spimn-presence-donotdisturb-oof"; alt = Strings.STS.L_IMNDoNotDisturb_OOF_Text; break; case 21: classPrefix = "ms-spimn-presence-donotdisturb"; alt = Strings.STS.L_IMNInPresentation_Text; break; case 10: classPrefix = "ms-spimn-presence-busy"; alt = Strings.STS.L_IMNBusy_Text; break; case 16: classPrefix = "ms-spimn-presence-away"; alt = Strings.STS.L_IMNIdle_Text; break; case 17: classPrefix = "ms-spimn-presence-away-oof"; alt = Strings.STS.L_IMNIdle_OOF_Text; break; case 18: classPrefix = "ms-spimn-presence-blocked"; alt = Strings.STS.L_IMNBlocked_Text; break; case 19: classPrefix = "ms-spimn-presence-busy"; alt = Strings.STS.L_IMNBusy_Text; break; case 20: classPrefix = "ms-spimn-presence-busy-oof"; alt = Strings.STS.L_IMNBusy_OOF_Text; break; } var imnInfo = new IMNImageInfo(); imnInfo.img = img; imnInfo.classPrefix = classPrefix; imnInfo.alt = alt; return imnInfo; } function IMNGetHeaderImage() { var imnInfo = new IMNImageInfo(); imnInfo.img = "imnhdr.gif"; imnInfo.alt = ""; return imnInfo; } function IMNIsOnlineState(state) { if (state == 1) { return false; } return true; } function IMNSortList(j, oldState, state) { var objTable = null; var objRow = null; if (Boolean(IMNSortableObj) && IMNSortableObj[j]) { objRow = document.getElementById(j); while (Boolean(objRow) && !(objRow.tagName == "TR" && typeof objRow.Sortable != "undefined")) { objRow = objRow.parentNode; } objTable = objRow; while (Boolean(objTable) && objTable.tagName != "TABLE") { objTable = objTable.parentNode; } var objTableRows = objTable.rows; if (objTable != null && objRow != null) { if (objTableRows[1].style.display == "none") { for (var i = 1; i < 4; i++) { objTableRows[i].style.display = "block"; } } if (!IMNIsOnlineState(oldState) && IMNIsOnlineState(state)) { objTableRows[2].style.display = "none"; i = 3; while (objTableRows[i].id != "Offline" && Number(objTableRows[i].innerText) < Number(objRow.innerText)) i++; if (typeof objTable.moveRow == 'function') objTable.moveRow(objRow.rowIndex, i); if (objTableRows[objTableRows.length - 3].id == "Offline") { objTableRows[objTableRows.length - 2].style.display = "block"; } } else if (IMNIsOnlineState(oldState) && !IMNIsOnlineState(state)) { if (objRow.rowIndex == 3 && objTableRows[objRow.rowIndex + 1].id == "Offline") { objTableRows[2].style.display = "block"; } if (objTableRows[objTableRows.length - 3].id == "Offline") { objTableRows[objTableRows.length - 2].style.display = "none"; } i = objTableRows.length - 2; while (objTableRows[i - 1].id != "Offline" && Number(objTableRows[i].innerText) > Number(objRow.innerText)) i--; objTable.moveRow(objRow.rowIndex, i); } } } } function IMNOnStatusChange(nameParam, state, id) { if (Boolean(IMNDictionaryObj) && typeof IMNDictionaryObj[id] != 'undefined') { var img = IMNGetStatusImage(state, IMNSortableObj[id] || IMNShowOfflineObj[id]); if (IMNDictionaryObj[id] != state) { if (bIMNSorted) IMNSortList(id, IMNDictionaryObj[id], state); IMNUpdateImage(id, img); IMNDictionaryObj[id] = state; } } if (Boolean(IMNDictionaryPresenceTextObj) && typeof IMNDictionaryPresenceTextObj[id] != 'undefined') { var presenceTextElement = document.getElementById(id); IMNUpdatePresenceText(presenceTextElement, state); } } function IMNUpdateImageClassPrefix(obj, classPrefix) { var exp = /ms-spimn-presence-[a-zA-Z]*-([0-9])/i; var oldClass = obj.getAttribute("class"); if (oldClass != null) { obj.setAttribute("class", oldClass.replace(exp, classPrefix + "-" + "$1")); } } function IMNUpdateImage(id, imgInfo) { var obj = document.images[id]; if (Boolean(obj)) { var parentNode = obj.parentNode; if (parentNode.firstChild != obj) parentNode.insertBefore(obj, parentNode.firstChild); var img = imgInfo.img; var classPrefix = imgInfo.classPrefix; var alt = imgInfo.alt; var oldImg = obj.src; if (typeof obj.src == "undefined") oldImg = (obj.item(0)).src; var index = oldImg.lastIndexOf("/"); var newImg = oldImg.slice(0, index + 1); newImg += img; IMNUpdateImageClassPrefix(obj, classPrefix); if (oldImg == newImg && img != 'blank.gif') return; if (typeof obj.altbase != 'undefined' && Boolean(obj.altbase)) { obj.alt = obj.altbase; } else if (typeof obj.getAttribute('altbase') != 'undefined' && Boolean(obj.getAttribute('altbase'))) { obj.alt = obj.getAttribute('altbase'); } else { obj.alt = alt; } var useFilter = browseris.ie && browseris.ie55up && browseris.verIEFull < 7.0; var isPng = (newImg.toLowerCase()).indexOf(".png") > 0; if (useFilter) { if (isPng) { obj.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src=" + newImg + "),sizingMethod=scale,enabled=true);"; obj.src = "/_layouts/15/images/blank.gif?rev=43"; } else { obj.style.filter = ""; obj.src = newImg; } } else { obj.src = newImg; } } } function IMNHandleAccelerator(objEvent) { if (IMNControlObj) { var currEvent = GetCurrentEvent(objEvent); if (currEvent.altKey && currEvent.shiftKey && currEvent.keyCode == 121) { if (typeof IMNControlObj.DoAccelerator != 'undefined') IMNControlObj.DoAccelerator(); } } } function IMNImageOnClick(objEvent) { if (IMNControlObj) { IMNShowOOUIKyb(objEvent); if (typeof IMNControlObj.DoAccelerator != 'undefined') IMNControlObj.DoAccelerator(); HideSharedHoverCard(); } } function IMNGetOOUILocation(obj) { var objRet = new Object; var objSpan = obj; var objOOUI = obj; var objImg = obj; var oouiX = 0, oouiY = 0, objDX = 0; var fRtl = document.dir == "rtl"; var objSpanClass = objSpan.className; while (Boolean(objSpan) && (objSpanClass == null || objSpanClass.indexOf("ms-imnSpan") == -1) && objSpan.tagName != "TABLE") { if (objSpan.tagName == "TD" && objSpanClass.indexOf("ms-vb") >= 0) break; objSpan = objSpan.parentNode; if (!Boolean(objSpan)) return null; objSpanClass = objSpan.className; } if (Boolean(objSpan)) { var childNode; if (objSpan.tagName == "TABLE") { var row = objSpan.rows(0); var cell = row.cells(0); childNode = cell.firstChild; } else childNode = objSpan.firstChild; while (childNode != null) { if (childNode.tagName == "A") { var linkDescendant = childNode.firstChild; while (linkDescendant != null) { if (linkDescendant.tagName == "IMG" && Boolean(linkDescendant.id)) { childNode = linkDescendant; break; } linkDescendant = linkDescendant.firstChild; } } if (childNode.tagName == "IMG" && Boolean(childNode.id)) { objOOUI = childNode; break; } childNode = childNode.nextSibling; } objImg = objOOUI; objOOUI = objSpan; } obj = objOOUI; var zoom = 1; if (Boolean(browseris.ie9standardUp)) zoom = window.screen.deviceXDPI / window.screen.logicalXDPI; oouiY = (objOOUI.getBoundingClientRect()).top * zoom - 5; oouiX = (objOOUI.getBoundingClientRect()).left * zoom - 5; var parentObj = objOOUI.parentNode; while ((oouiX < 0 || oouiY < 0) && parentObj != null && Boolean(parentObj.getBoundingClientRect)) { oouiY = (parentObj.getBoundingClientRect()).top * zoom - 5; oouiX = (parentObj.getBoundingClientRect()).left * zoom - 5; parentObj = parentObj.parentNode; } try { var currentWindow = window; while (Boolean(currentWindow) && currentWindow != currentWindow.parent) { var iframe = currentWindow.frameElement; var iframebcr = Boolean(iframe) ? iframe.getBoundingClientRect() : null; var iframetop = Boolean(iframebcr) ? iframebcr.top : 0; var iframeleft = Boolean(iframebcr) ? iframebcr.left : 0; oouiY += iframetop; oouiX += iframeleft; currentWindow = currentWindow.parent; } } catch (e) { } ; objRet.objSpan = objSpan; objRet.objOOUI = objOOUI != objSpan ? objOOUI : objImg; objRet.oouiX = oouiX; objRet.oouiY = oouiY; return objRet; } function IMNShowOOUIMouse(objEvent) { IMNShowOOUI(objEvent, 0); } function IMNShowOOUIKyb(objEvent) { IMNShowOOUI(objEvent, 1); } function IMNShowOOUI(objEvent, inputType) { if (browseris.ie5up || IsSupportedMacBrowser() || IsSupportedNPApiBrowserOnWin()) { var currEvent = GetCurrentEvent(objEvent); var obj = GetEventTarget(currEvent); var objSpan = obj; var objOOUI = obj; var oouiX = 0, oouiY = 0; if (EnsureIMNControl() && Boolean(IMNNameDictionaryObj)) { var objRet = IMNGetOOUILocation(obj); if (Boolean(objRet)) { objSpan = objRet.objSpan; objOOUI = objRet.objOOUI; oouiX = objRet.oouiX; oouiY = objRet.oouiY; if (Boolean(currEvent.clientX)) oouiX = currEvent.clientX; var nameParam = IMNNameDictionaryObj[objOOUI.id]; if (nameParam == null || nameParam.length < 1) return; if (Boolean(objSpan)) objSpan.onkeydown = IMNHandleAccelerator; if (typeof IMNControlObj.ShowOOUI != 'undefined') IMNControlObj.ShowOOUI(nameParam, inputType, Math.round(oouiX), Math.round(oouiY)); } } } } function IMNHideOOUI() { if (Boolean(IMNControlObj)) { if (typeof IMNControlObj.HideOOUI != 'undefined') IMNControlObj.HideOOUI(); return false; } return true; } function IMNScroll() { if (!bIMNInScrollFunc) { bIMNInScrollFunc = true; IMNHideOOUI(); } bIMNInScrollFunc = false; if (IMNOrigScrollFunc == IMNScroll) return true; return Boolean(IMNOrigScrollFunc) ? IMNOrigScrollFunc() : true; } var imnCount; var imnElems; var imnElemsCount; var imnMarkerBatchSize; var imnMarkerBatchDelay; var sharedHoverCardsCount; var sharedHoverCardElements; var sharedHoverCardElementsCount; var sharedHoverCardMarkerBatchSize; var sharedHoverCardMarkerBatchDelay; var IsIFrameSharedHoverCard; var SharedHoverCardIFrame; var SharedHoverCardIFrameCode; function GetHoverCardJsUrls(keys) { var urls = new Array(0); if (IsIFrameSharedHoverCard || _v_dictSod == null) { return urls; } for (var i = 0; i < keys.length; i++) { var sod = _v_dictSod[keys[i]]; urls[i] = sod == null ? "" : sod.url; } return urls; } function InitIFrameSharedHoverCard() { IsIFrameSharedHoverCard = true; sharedHoverCardsCount = 0; if (window.parent != null) { var sodKeys = new Array(0); sodKeys[0] = OwaSharedHoverCardJsKey; sodKeys[1] = OwaSharedHoverCardStringsJsKey; var cardJsUrls = parent.window.GetHoverCardJsUrls(sodKeys); for (var i = 0; i < cardJsUrls.length; i++) { var cardJsSrc = cardJsUrls[i]; if (cardJsSrc != null && cardJsSrc.length > 0) { RegisterSod(sodKeys[i], cardJsSrc); } } } RenderSharedHoverCardContainer(); } function ProcessImn() { if (typeof _spPageContextInfo == "undefined" || _spPageContextInfo == null) { return; } if (typeof _spPageContextInfo.userId == "undefined" || _spPageContextInfo.userId == String(-1)) { return; } imnCount = 0; imnElems = document.getElementsByName("imnmark"); imnElemsCount = imnElems.length; if (EnsureIMNControl()) { ProcessImnMarkers(); } else { RemoveImnAnchors(); } if (IsPeopleHoverCardEnabled()) { sharedHoverCardsCount = 0; sharedHoverCardElements = document.getElementsByName("SharedHoverCardMarker"); sharedHoverCardElementsCount = sharedHoverCardElements.length; if (sharedHoverCardElementsCount > 0) { ProcessSharedHoverCardMarkers(); RenderSharedHoverCardContainer(); } } } function ClientCanHandleImn() { return EnsureIMNControl() && typeof IMNControlObj.PresenceEnabled != 'undefined' && IMNControlObj.PresenceEnabled; } function RemoveImnAnchors() { for (var i = 0; i < imnElemsCount; i++) { var imnElem = imnElems[i]; var imnAnchor = imnElem.parentNode; while (imnAnchor != null && !IsImnAnchor(imnAnchor)) { imnElem = imnAnchor; imnAnchor = imnAnchor.parentNode; } if (IsImnAnchor(imnAnchor) && imnAnchor.childNodes.length == 1) { imnAnchor.setAttribute("tabIndex", "-1"); imnAnchor.onclick = null; } } var imnEmptyElems = document.getElementsByName("imnempty"); for (i = 0; i < imnEmptyElems.length; i++) { imnElem = imnEmptyElems[i]; imnAnchor = imnElem.parentNode; if (imnAnchor != null && imnAnchor.tagName == "SPAN" && !Boolean(imnAnchor.getAttribute("title"))) imnAnchor.appendChild(imnElem); } } function ProcessImnMarkers() { for (var i = 0; i < imnMarkerBatchSize; ++i) { if (imnCount == imnElemsCount) return; var imnElem = imnElems[imnCount]; if (imnElem != null && typeof imnElem != 'undefined') { IMNRC(imnElem.getAttribute("sip"), imnElem); } imnCount++; } setTimeout("ProcessImnMarkers()", imnMarkerBatchDelay); } function IMNRC(nameParam, elem) { if (nameParam == null || nameParam == '') return; var presenceEnabled = typeof g_presenceEnabled != "undefined" && g_presenceEnabled && EnsureIMNControl() && IMNControlObj.PresenceEnabled; if (browseris.ie5up || IsSupportedMacBrowser() || IsSupportedNPApiBrowserOnWin()) { var obj = Boolean(elem) ? elem : window.event.srcElement; var objSpan = obj; var id = obj.id; if (!Boolean(IMNDictionaryObj)) { IMNDictionaryObj = new Object(); IMNNameDictionaryObj = new Object(); IMNSortableObj = new Object(); IMNShowOfflineObj = new Object(); if (!Boolean(IMNOrigScrollFunc)) { if (typeof window.onscroll != 'undefined') IMNOrigScrollFunc = window.onscroll; window.onscroll = IMNScroll; } } if (Boolean(IMNDictionaryObj)) { if (!IMNNameDictionaryObj[id]) { IMNNameDictionaryObj[id] = nameParam; } if (typeof IMNDictionaryObj[id] == "undefined") { IMNDictionaryObj[id] = 1; } if (!IMNSortableObj[id] && typeof obj.Sortable != "undefined") { IMNSortableObj[id] = obj.Sortable; if (!bIMNOnloadAttached && presenceEnabled) { AttachEvent("load", IMNSortTable, window); bIMNOnloadAttached = true; } } if (!IMNShowOfflineObj[id] && obj.getAttribute("ShowOfflinePawn") != null) { IMNShowOfflineObj[id] = obj.getAttribute("ShowOfflinePawn"); } if (presenceEnabled) { var state = 1, img; if (typeof IMNControlObj.GetStatus != 'undefined') state = IMNControlObj.GetStatus(nameParam, id); if (IMNIsOnlineState(state) || IMNSortableObj[id] || IMNShowOfflineObj[id]) { img = IMNGetStatusImage(state, IMNSortableObj[id] || IMNShowOfflineObj[id]); IMNUpdateImage(id, img); IMNDictionaryObj[id] = state; } } } var objRet = IMNGetOOUILocation(obj); if (Boolean(objRet)) { SetImnOnClickHandler(objRet.objOOUI); objSpan = objRet.objSpan; if (Boolean(objSpan)) { if (!IsPeopleHoverCardEnabled()) { objSpan.onmouseover = IMNShowOOUIMouse; objSpan.onfocusin = IMNShowOOUIKyb; objSpan.onmouseout = IMNHideOOUI; objSpan.onfocusout = IMNHideOOUI; } } } } } function IsImnAnchor(node) { if (!Boolean(node)) return false; var nodeClass = node.className; return nodeClass != null && nodeClass.indexOf("ms-imnlink") != -1; } function SetImnOnClickHandler(imgNode) { var parentNode = imgNode.parentNode; var currNode = parentNode; var nodeClass = currNode.className; while (Boolean(currNode) && !IsImnAnchor(currNode)) { currNode = currNode.parentNode; } if (Boolean(currNode)) parentNode = currNode; if (IsImnAnchor(parentNode)) { if (typeof parentNode.onclick == "undefined") { parentNode.onclick = IMNImageOnClickHandler; } } else { var anchor = document.createElement("a"); anchor.onclick = IMNImageOnClickHandler; anchor.className = "ms-imnlink"; anchor.href = "javascript:;"; parentNode.insertBefore(anchor, imgNode); anchor.appendChild(imgNode); } } function IMNImageOnClickHandler(objEvent) { IMNImageOnClick(objEvent); return false; } function IMNSortTable() { var id; for (id in IMNDictionaryObj) { IMNSortList(id, 1, IMNDictionaryObj[id]); } bIMNSorted = true; } function IMNRegisterHeader(objEvent) { if (browseris.ie5up || IsSupportedMacBrowser() || IsSupportedNPApiBrowserOnWin()) { var currEvent = GetCurrentEvent(objEvent); if (currEvent == null) return; var obj = GetEventTarget(currEvent); if (!Boolean(IMNHeaderObj)) { IMNHeaderObj = new Object(); } if (Boolean(IMNHeaderObj)) { var id = obj.id; IMNHeaderObj[id] = id; var img; img = IMNGetHeaderImage(); IMNUpdateImage(id, img); } } } function ProcessSharedHoverCardMarkers() { for (var i = 0; i < sharedHoverCardMarkerBatchSize; ++i) { if (sharedHoverCardsCount == sharedHoverCardElementsCount) return; var sharedHoverCardElement = sharedHoverCardElements[sharedHoverCardsCount]; if (sharedHoverCardElement != null && typeof sharedHoverCardElement != 'undefined') { AddSharedHoverCardHandlers(sharedHoverCardElement.getAttribute("sip"), sharedHoverCardElement); } sharedHoverCardsCount++; } setTimeout("ProcessSharedHoverCardMarkers()", sharedHoverCardMarkerBatchDelay); } function AddSharedHoverCardHandlers(nameParam, userField) { if (nameParam == null || nameParam == '' || userField == null) { return; } if (!IsIFrameSharedHoverCard) { userField.onmouseover = ShowSharedHoverCardHandler; userField.onmouseout = HideSharedHoverCardHandler; } } function ShowSharedHoverCardHandler(objEvent) { if (IsPeopleHoverCardEnabled()) { var currEvent = GetCurrentEvent(objEvent); var obj = GetEventTarget(currEvent); if (Boolean(obj)) { var userField = GetUserField(obj); if (userField != null) { var sip = userField.getAttribute("sip"); var hoverCardContainer = SharedHoverCardContainer; if (Boolean(hoverCardContainer)) { CancelSharedHoverCardHideTimer(); if (ActiveUserField != userField) { if (SharedHoverCardDelayTimer != null) { clearTimeout(SharedHoverCardDelayTimer); } SharedHoverCardDelayed = hoverCardContainer; SharedHoverCardDelayTimer = setTimeout(function() { if (IsIFrameSharedHoverCard) { SharedHoverCardDelayed = null; ShowSharedHoverCard(hoverCardContainer, userField); } else { var childWindow = SharedHoverCardIFrame != null ? SharedHoverCardIFrame.contentWindow : null; if (Boolean(childWindow) && Boolean(childWindow.IFrameShowSharedHoverCard)) { SP.QoS.WriteUserEngagement('SharedHoverCard_ShowCard'); SharedHoverCardDelayed = null; ShowSharedHoverCard(hoverCardContainer, userField); childWindow.IFrameShowSharedHoverCard(userField); } } }, SharedHoverCardDelayTime); } } } } } } function SharedHoverCardLogRUMExtendedAction(actionName, actionId, actionGuid, actionDate, actionType) { LogRUMExtendedAction(actionName, actionId, actionGuid, actionDate, actionType); } function IFrameShowSharedHoverCard(userField) { ShowSharedHoverCard(SharedHoverCardContainer, userField); } function ShowSharedHoverCard(hoverCardContainer, userField) { if (Boolean(hoverCardContainer) && (hoverCardContainer.style.visibility != "" || ActiveUserField != userField)) { currentShowHoverCardInstanceBootstrappedState = Boolean(SharedHoverCardBootStrapped); currentShowHoverCardInstance = nextShowHoverCardInstance++; var startTime = (new Date()).getTime(); var actionName = currentShowHoverCardInstanceBootstrappedState ? "ShowHoverCardWithBootStrappedBegin" : "ShowHoverCardWithoutBootStrappedBegin"; if (IsIFrameSharedHoverCard) { parent.SharedHoverCardLogRUMExtendedAction(actionName, currentShowHoverCardInstance, null, startTime, null); } else { LogRUMExtendedAction(actionName, currentShowHoverCardInstance, null, startTime, null); } if (Boolean(ActiveSharedHoverCard) && ActiveUserField != userField) { HideSharedHoverCard(); } ActiveSharedHoverCard = hoverCardContainer; ActiveUserField = userField; hoverCardContainer.style.display = "block"; PositionSharedHoverCard(hoverCardContainer, userField); SPAnimationUtility.BasicAnimator.FadeIn(hoverCardContainer); var placeHolder = hoverCardContainer.firstChild; var cardContainer = hoverCardContainer.lastChild; placeHolder.style.visibility = ""; placeHolder.style.display = "block"; if (IsIFrameSharedHoverCard) { if (!SharedHoverCardDependenciesRegistered) { RegisterSharedHoverCardDependencies(); } hoverCardContainer.style.left = "0px"; hoverCardContainer.style.top = "0px"; var email = userField.getAttribute("sip"); var title = userField.getAttribute("userTitle"); RenderSharedHoverCard(cardContainer, email, title); } } } function PositionSharedHoverCard(hoverCardContainer, userField) { if (userField == null || hoverCardContainer == null) { return; } var position = IMNGetPosition(userField); var windowWidth = IMNGetDocumentClientWidth(); var scrollX = IMNGetScrollX(); var x = position.X + hoverCardContainer.offsetWidth - scrollX; if (x > windowWidth) { position.X = position.X - (x - windowWidth) - 2; } hoverCardContainer.style.left = position.X + "px"; hoverCardContainer.style.top = String(position.Y + userField.offsetHeight) + "px"; } function IMNGetScrollX() { var scrollX = 0; var workspace = IMNGetSharepointWorkspace(); if (Boolean(workspace)) { scrollX = workspace.scrollLeft; } return scrollX; } function HideSharedHoverCard() { if (!IsIFrameSharedHoverCard && Boolean(ActiveSharedHoverCard)) { SPAnimationUtility.BasicAnimator.FadeOut(ActiveSharedHoverCard); ActiveSharedHoverCard.style.visibility = "hidden"; ActiveSharedHoverCard.style.display = "none"; ActiveSharedHoverCard = null; ActiveUserField = null; SharedHoverCardPending = null; } } function GetUserField(element) { while (Boolean(element)) { if (element.getAttribute != null) { if (element.getAttribute("name") == "SharedHoverCardMarker") { break; } } element = element.parentNode; } return element; } function SetSharedHoverCardHideTimer() { SharedHoverCardHideTimer = setTimeout(function() { if (Boolean(ActiveSharedHoverCard)) { HideSharedHoverCard(); } }, SharedHoverCardHideTime); } function HideSharedHoverCardHandler(objEvent) { if (Boolean(objEvent) && objEvent.type == "mouseout") { var target = Boolean(objEvent.relatedTarget) ? objEvent.relatedTarget : objEvent.toElement; var container = objEvent.currentTarget; if (!Boolean(target) || !Boolean(container)) { return; } if (!IMNIsDescendant(target, container)) { CancelSharedHoverCardDelayTimer(); SetSharedHoverCardHideTimer(); } } else { CancelSharedHoverCardDelayTimer(); SetSharedHoverCardHideTimer(); } } function CancelSharedHoverCardHideTimer() { if (Boolean(SharedHoverCardHideTimer)) { clearTimeout(SharedHoverCardHideTimer); } } function CancelSharedHoverCardDelayTimer() { if (Boolean(SharedHoverCardDelayTimer)) { SharedHoverCardDelayed = null; clearTimeout(SharedHoverCardDelayTimer); } } function IMNIsDescendant(element, container) { if (!Boolean(element) || !Boolean(container)) { return false; } while (Boolean(element) && element != container) { element = element.parentNode; } return element == container; } function IsPeopleHoverCardEnabled() { return Flighting.VariantConfiguration.IsExpFeatureClientEnabled(0) && !FallbackToActiveX; } function IMNGetPosition(targetElement) { var position = new Object; var tempY = 0, tempX = 0; var workspace = IMNGetSharepointWorkspace(); while (targetElement != null && targetElement != workspace) { tempY += targetElement.offsetTop; tempX += targetElement.offsetLeft; targetElement = targetElement.offsetParent; } position.X = tempX; position.Y = tempY; return position; } function IMNGetDocumentClientWidth() { var width = 0; var workspace = IMNGetSharepointWorkspace(); if (Boolean(workspace) && Boolean(workspace.clientWidth)) { width = workspace.clientWidth; } else if (Boolean(document.documentElement) && Boolean(document.documentElement.clientWidth)) { width = document.documentElement.clientWidth; } return width; } function IMNGetSharepointWorkspace() { var workspace = null; if (typeof g_Workspace != "undefined") { workspace = document.getElementById(g_Workspace); } if (workspace == null) { workspace = document.body; } return workspace; } function RenderSharedHoverCardContainer() { if (SharedHoverCardContainer == null) { SharedHoverCardContainer = CreateSharedHoverCardContainer(); if (!IsIFrameSharedHoverCard) { SharedHoverCardIFrame = document.createElement("IFRAME"); if (browseris.firefox3up) { SharedHoverCardIFrame.setAttribute("src", GetPassThroughProxyRoot() + "/SHCIFrameContainer.html"); } else { SharedHoverCardIFrame.onload = function() { SharedHoverCardIFrame.onload = function() { }; var doc = SharedHoverCardIFrame.contentWindow.document; doc.open(); doc.write(SharedHoverCardIFrameCode); doc.close(); }; SharedHoverCardIFrame.setAttribute("src", "about:blank"); } SharedHoverCardIFrame.style.cssText = "min-height: 400px;min-width: 500px;"; SharedHoverCardContainer.appendChild(SharedHoverCardIFrame); SharedHoverCardContainer.onmouseover = SharedHoverCardOnMouseOverHandler; SharedHoverCardContainer.onfocusin = SharedHoverCardOnMouseOverHandler; SharedHoverCardContainer.onmouseout = HideSharedHoverCardHandler; SharedHoverCardContainer.onfocusout = HideSharedHoverCardHandler; } var workspace = IMNGetSharepointWorkspace(); workspace.appendChild(SharedHoverCardContainer); } } function SharedHoverCardOnMouseOverHandler(objEvent) { var currEvent = GetCurrentEvent(objEvent); var obj = GetEventTarget(currEvent); if (Boolean(obj)) { CancelSharedHoverCardHideTimer(); } } function CreateSharedHoverCardContainer() { var hoverCardContainer = document.createElement("div"); if (IsIFrameSharedHoverCard) { hoverCardContainer.style.cssText = "z-index: 1001;background-color: #FFFFFF;min-height: 98px;min-width: 481px;"; hoverCardContainer.style.position = "absolute"; hoverCardContainer.style.border = "0px"; hoverCardContainer.style.display = "none"; hoverCardContainer.style.visibility = "hidden"; hoverCardContainer.appendChild(CreateSpinningWheelContainer()); hoverCardContainer.appendChild(CreateSharedCardContainer()); } else { hoverCardContainer.style.cssText = "box-sizing: border-box;box-shadow: 0px 0px 7px rgba(0,0,0,0.4);z-index: 1001;background-color: #FFFFFF;min-height: 401px;min-width: 501px;"; hoverCardContainer.style.position = "absolute"; hoverCardContainer.style.border = "1px solid #DEDEDE"; hoverCardContainer.style.display = "none"; hoverCardContainer.style.visibility = "hidden"; } return hoverCardContainer; } function CreateSpinningWheelContainer() { var spinningWheel = document.createElement("div"); spinningWheel.style.display = "none"; spinningWheel.style.visibility = "hidden"; var waitingImg = document.createElement("img"); waitingImg.src = "/_layouts/15/images/gears_anv4.gif?rev=43"; spinningWheel.appendChild(waitingImg); return spinningWheel; } function CreateSharedCardContainer() { var container = document.createElement("div"); container.style.display = "none"; container.style.visibility = "hidden"; return container; } function RenderSharedHoverCard(targetElement, userEmail, userTitle) { if (SharedHoverCardBootStrapped) { if (typeof sharedHoverCardShim.createSharedHoverCard != "undefined") { sharedHoverCardShim.createSharedHoverCard(targetElement, userEmail, userTitle, IMNGetPresence(userEmail)); } } else { SharedHoverCardPending = new Object; SharedHoverCardPending.TargetElement = targetElement; SharedHoverCardPending.UserEmail = userEmail; SharedHoverCardPending.UserTitle = userTitle; } } function IMNGetRelativeUrl() { if (IsIFrameSharedHoverCard && parent != window) { var parentWin = parent; return parentWin.IMNGetRelativeUrl(); } var relativeUrl = ""; if (typeof _spPageContextInfo != "undefined" && typeof _spPageContextInfo.webServerRelativeUrl != "undefined") { relativeUrl = _spPageContextInfo.webServerRelativeUrl; } else { relativeUrl = "/"; } if (relativeUrl.lastIndexOf('/') != relativeUrl.length - 1) { relativeUrl += "/"; } return relativeUrl; } function IMNGetExchangeServerVersion() { var version = ""; if (typeof serverSettings != "undefined" && typeof serverSettings.version != "undefined") { version = serverSettings.version; } return version; } function IMNGetScriptKey(scriptUrl) { var key = scriptUrl; if (key != null && key != '') { var lastSlashPosition = key.lastIndexOf('/'); if (lastSlashPosition != -1) { key = scriptUrl.substring(lastSlashPosition + 1); } } return key; } function SharedHoverCardRenderComplete() { function FixOwaButtonWidth(className) { var elements = SharedHoverCardContainer.getElementsByClassName(className); if (elements == null) { return; } for (var i = 0; i < elements.length; i++) { var element = elements[i]; if (element != null) { element.style.minWidth = '0px'; element.style.marginLeft = '0px'; } } } function OnHoverCardUpdate() { FixOwaButtonWidth('o365button'); var elements = SharedHoverCardContainer.getElementsByClassName('image-personcard_event_mo-png'); if (elements != null) { for (var i = 0; i < elements.length; i++) { var element = elements[i]; if (element != null && element.parentNode != null) { element.parentNode.style.display = 'none'; } } } } if (SharedHoverCardContainer != null) { var endTime = (new Date()).getTime(); var actionName = currentShowHoverCardInstanceBootstrappedState ? "ShowHoverCardWithBootStrappedEnd" : "ShowHoverCardWithoutBootStrappedEnd"; if (IsIFrameSharedHoverCard) { parent.SharedHoverCardLogRUMExtendedAction(actionName, currentShowHoverCardInstance, null, endTime, null); } else { LogRUMExtendedAction(actionName, currentShowHoverCardInstance, null, endTime, null); } var placeHolder = SharedHoverCardContainer.firstChild; var cardContainer = SharedHoverCardContainer.lastChild; if (placeHolder != null && cardContainer != null) { if (typeof window.chrome != "undefined") { cardContainer.addEventListener("DOMNodeInserted", OnHoverCardUpdate, false); } else { cardContainer.addEventListener("DOMAttrModified", OnHoverCardUpdate, false); } placeHolder.style.display = "none"; placeHolder.style.visibility = "hidden"; cardContainer.style.display = "table"; cardContainer.style.visibility = ""; } } } function GetPassThroughProxyRoot() { return IMNGetRelativeUrl() + "_api/OWAWebService"; } function GetLayoutsRoot() { if (IsIFrameSharedHoverCard && parent != window) { var parentWin = parent; return parentWin.GetLayoutsRoot(); } var layoutsRoot = "_layouts/15/"; if (typeof _spPageContextInfo != "undefined" && typeof _spPageContextInfo.layoutsUrl != "undefined") { layoutsRoot = _spPageContextInfo.layoutsUrl; } layoutsRoot = IMNGetRelativeUrl() + layoutsRoot; if (layoutsRoot.lastIndexOf('/') != layoutsRoot.length - 1) { layoutsRoot += "/"; } return layoutsRoot; } function bootStrapComplete(complete) { SharedHoverCardBootStrapped = true; if (ActiveSharedHoverCard != null && ActiveUserField != null && SharedHoverCardPending != null) { RenderSharedHoverCard(SharedHoverCardPending.TargetElement, SharedHoverCardPending.UserEmail, SharedHoverCardPending.UserTitle); } } function GetOwaServiceURL() { return GetPassThroughProxyRoot() + '/service.svc?action={0}'; } function GetGetPersonaPhotoURL() { return GetPassThroughProxyRoot() + '/service.svc/s/GetPersonaPhoto'; } function RegisterSharedHoverCardDependencies() { var layoutsRoot = GetLayoutsRoot(); var style = document.createElement('link'); style.href = layoutsRoot + OwaRoot + 'resources/themes/base/0/sharedhovercard.css'; style.rel = 'stylesheet'; style.type = 'text/css'; (document.getElementsByTagName('head'))[0].appendChild(style); var element = document.createElement('script'); element.text = 'var slabManifest = {"boot":{"Types":["IBasePersonaViewModelFactory"],"Configurations":[{"type":"ReadPersonCardComponent"},{"type":"SharedHoverCardComponent"}]}};var st = new Date();var sver = 0'; (document.getElementsByTagName('head'))[0].appendChild(element); element = document.createElement('script'); element.text = 'var serverSettings = {"version": "version","startTime": st,"cdnEndpoint": "","mapControlUrl": "","appDomainAppVirtualPath": "/owa","layout": "mouse","uiCulture": "en-US","uiTheme": "base","uiLang": "en","scriptsFolder": "' + layoutsRoot + '","resourcesFolder": "' + layoutsRoot + OwaRoot + 'resources","themedImagesFolderFormat": "' + layoutsRoot + OwaRoot + 'resources/themes/base/images/0","bootType": "SharedHoverCard","stylesLocale": "0","stylesFolderFormat": "' + layoutsRoot + OwaRoot + 'resources/themes/base/0"};'; (document.getElementsByTagName('head'))[0].appendChild(element); EnsureScriptFunc(OwaSharedHoverCardJsKey, "SharedHoverCardShim", function() { EnsureScriptFunc(OwaSharedHoverCardStringsJsKey, "", function() { BootstrapHoverCard(); }); }); SharedHoverCardDependenciesRegistered = true; } function FallBackToActiveX() { FallbackToActiveX = true; HideSharedHoverCard(); sharedHoverCardsCount = 0; RemoveSharedHoverCardHandlers(); ProcessImn(); } function OwaServiceRequestHeadersDelegate() { if (IsIFrameSharedHoverCard && parent != window) { return parent.OwaServiceRequestHeadersDelegate(); } if (!fIsNullOrUndefined(window["_spPageContextInfo"]) && !fIsNullOrUndefined(window["_spFormDigestRefreshInterval"]) && !fIsNullOrUndefined(UpdateFormDigest)) { var ctxObj = window["_spPageContextInfo"]; UpdateFormDigest(ctxObj.webServerRelativeUrl, window["_spFormDigestRefreshInterval"]); } var dynamicOwaServiceRequestHeaders = {}; var digestElem = document.getElementById("__REQUESTDIGEST"); if (Boolean(digestElem)) { dynamicOwaServiceRequestHeaders['X-RequestDigest'] = digestElem.value; } return dynamicOwaServiceRequestHeaders; } function BootstrapHoverCard() { function OpenImConversation(email) { if (fIsNullOrUndefined(email) || email == '' || fIsNullOrUndefined(IMNControlObj)) { return; } if (IsIFrameSharedHoverCard) { parent.location.assign("IM:"); } else { window.location.assign("IM:"); } } function OpenEmailCompose(email) { if (fIsNullOrUndefined(email) || email == '') { return; } if (IsIFrameSharedHoverCard) { parent.location.assign("MailTo:<" + email + ">"); } else { window.location.assign("MailTo:<" + email + ">"); } } SharedHoverCardDependenciesLoaded = true; if (sharedHoverCardShim == null) { if (typeof SharedHoverCardShimParameters != "undefined" && typeof SharedHoverCardShimParameters.prototype.set_serverSettings != "undefined" && typeof SharedHoverCardShimParameters.prototype.set_slabManifest != "undefined" && typeof SharedHoverCardShimParameters.prototype.set_cardCreatedCallBack != "undefined" && typeof SharedHoverCardShimParameters.prototype.set_bootStrapCallBack != "undefined" && typeof SharedHoverCardShimParameters.prototype.set_openImConversationCallBack != "undefined" && typeof SharedHoverCardShimParameters.prototype.set_openEmailComposeCallBack != "undefined" && typeof SharedHoverCardShimParameters.prototype.set_owaServiceUrl != "undefined" && typeof SharedHoverCardShimParameters.prototype.set_getOwaServiceRequestHeaders != "undefined" && typeof SharedHoverCardShimParameters.prototype.set_getCustomGetPhotoUrl != "undefined" && typeof SharedHoverCardShim != "undefined" && typeof SharedHoverCardShim.createInstance != "undefined") { sharedHoverCardShimParameters = new SharedHoverCardShimParameters(); sharedHoverCardShimParameters.set_serverSettings(serverSettings); sharedHoverCardShimParameters.set_slabManifest(slabManifest); sharedHoverCardShimParameters.set_cardCreatedCallBack(SharedHoverCardRenderComplete); sharedHoverCardShimParameters.set_bootStrapCallBack(bootStrapComplete); sharedHoverCardShimParameters.set_openImConversationCallBack(OpenImConversation); sharedHoverCardShimParameters.set_openEmailComposeCallBack(OpenEmailCompose); sharedHoverCardShimParameters.set_owaServiceUrl(GetOwaServiceURL()); sharedHoverCardShimParameters.set_getOwaServiceRequestHeaders(OwaServiceRequestHeadersDelegate); sharedHoverCardShimParameters.set_getCustomGetPhotoUrl(GetGetPersonaPhotoURL()); sharedHoverCardShim = SharedHoverCardShim.createInstance(sharedHoverCardShimParameters); } if (sharedHoverCardShim == null && typeof SharedHoverCardShim != "undefined") { var owaServiceRequestHeaders = {}; owaServiceRequestHeaders['X-RequestDigest'] = (document.getElementById('__REQUESTDIGEST')).value; sharedHoverCardShim = new SharedHoverCardShim(serverSettings, slabManifest, SharedHoverCardRenderComplete, bootStrapComplete, GetOwaServiceURL(), owaServiceRequestHeaders, GetGetPersonaPhotoURL()); } if (sharedHoverCardShim != null && typeof sharedHoverCardShim.bootStrapCard != "undefined") { sharedHoverCardShim.bootStrapCard(); } else { FallBackToActiveX(); } } } function RemoveSharedHoverCardHandlers() { for (var i = 0; i < sharedHoverCardMarkerBatchSize; ++i) { if (sharedHoverCardsCount == sharedHoverCardElementsCount) return; var sharedHoverCardElement = sharedHoverCardElements[sharedHoverCardsCount]; if (sharedHoverCardElement != null && typeof sharedHoverCardElement != 'undefined') { sharedHoverCardElement.onmouseover = null; sharedHoverCardElement.onfocusin = null; sharedHoverCardElement.onmouseout = null; sharedHoverCardElement.onfocusout = null; } sharedHoverCardsCount++; } setTimeout("RemoveSharedHoverCardHandlers()", sharedHoverCardMarkerBatchDelay); } function IMNGetPresence(userEmail) { var presence = 0; if (userEmail != '' && EnsureIMNControl()) { try { presence = IMNControlObj.GetStatus(userEmail, ""); presence = IMNControlObj.GetStatus(userEmail, ""); presence = MapIMNPresenceToOWAPresence(presence); } catch (e) { } } return presence; } function MapIMNPresenceToOWAPresence(presence) { var owaPresence = 0; switch (presence) { case 0: case 11: owaPresence = 2; break; case 1: case 12: owaPresence = 1; break; case 2: case 4: case 6: case 8: case 13: case 16: case 17: owaPresence = 3; break; case 3: case 5: case 7: case 10: case 14: case 19: case 20: case 21: owaPresence = 4; break; case 9: case 15: owaPresence = 6; case 18: owaPresence = 5; break; default: owaPresence = 0; break; } return owaPresence; } function IMN_RenderPresenceStatusText(userEmail, containerId) { if (userEmail != '' && containerId != '' && EnsureIMNControl()) { if (!Boolean(IMNDictionaryPresenceTextObj)) { IMNDictionaryPresenceTextObj = new Object(); IMNNameDictionaryPresenceTextObj = new Object(); } if (!IMNNameDictionaryPresenceTextObj[containerId]) { IMNNameDictionaryPresenceTextObj[containerId] = userEmail; } if (typeof IMNDictionaryPresenceTextObj[containerId] == "undefined") { IMNDictionaryPresenceTextObj[containerId] = 1; } if (typeof g_presenceEnabled != "undefined" && g_presenceEnabled && IMNControlObj.PresenceEnabled) { var state = 1; if (typeof IMNControlObj.GetStatus != 'undefined') { state = IMNControlObj.GetStatus(userEmail, containerId); } if (IMNIsOnlineState(state)) { var presenceTextElement = document.getElementById(containerId); IMNUpdatePresenceText(presenceTextElement, state); IMNDictionaryPresenceTextObj[containerId] = state; } } } } function IMNUpdatePresenceText(element, state) { if (typeof element != 'undefined') { var imnInfo = IMNGetStatusImage(state, true); element.innerHTML = imnInfo.alt; } } var _spBodyOnLoadFunctionNames; var _spBodyOnLoadFunctions; var _spBodyOnLoadCalled; var _spOriginalFormAction; var _spEscapedFormAction; var _spFormOnSubmitCalled; var _spBodyOnPageShowRegistered; function _spBodyOnPageShow(evt) { _spFormOnSubmitCalled = false; } function _spResetFormOnSubmitCalledFlag(sender, e) { _spFormOnSubmitCalled = false; } function _ribbonReadyForInit() { return _spBodyOnLoadCalled; } function _spBodyOnLoadWrapperInit() { if ((ajaxNavigate.get_search()).match(new RegExp("[?&]IsDlg=1")) == null) { FixRibbonAndWorkspaceDimensions(); } } function _spBodyOnLoadWrapper() { if (_spBodyOnLoadCalled) { return; } _spBodyOnLoadCalled = true; _spBodyOnLoadWrapperInit(); if (!_spBodyOnPageShowRegistered && typeof browseris != "undefined" && !browseris.ie && typeof window.addEventListener == 'function') { window.addEventListener('pageshow', _spBodyOnPageShow, false); _spBodyOnPageShowRegistered = true; } if (typeof Sys != "undefined" && typeof Sys.WebForms != "undefined" && typeof Sys.WebForms.PageRequestManager != "undefined") { var pageRequestMgr = Sys.WebForms.PageRequestManager.getInstance(); if (!_spPageLoadedRegistered && pageRequestMgr != null) { pageRequestMgr.add_pageLoaded(_spPageLoaded); _spPageLoadedRegistered = true; } } if (!_spPageLoadedRegistered) { _spPageLoaded(); } _spFormOnSubmitCalled = false; if (typeof Sys != "undefined" && typeof Sys.Net != "undefined" && typeof Sys.Net.WebRequestManager != "undefined") { Sys.Net.WebRequestManager.add_invokingRequest(_spResetFormOnSubmitCalledFlag); } if (typeof NotifyBodyLoadedAndExecuteWaitingJobs != "undefined") { NotifyBodyLoadedAndExecuteWaitingJobs(); } ExecuteOrDelayUntilScriptLoaded(ProcessDefaultOnLoad, "core.js"); if (typeof g_prefetch == "undefined" || g_prefetch == 1) { var uri = new URI(window.location.href, { queryCaseInsensitive: true }); var prefetch = uri.getQueryParameter("prefetch"); if (prefetch != String(0)) _spPreFetch(); } else { EnsureScript("strings.js", TypeofFullName("Strings"), null); EnsureScript("core.js", TypeofFullName("UpdateAnimationUserControl"), null); } } var g_numberOfYields; function _spDelayAfterAllScripts(fn) { _spYield(fn, g_numberOfYields); } function _spYield(fn, count) { if (count > 0) { window.setTimeout(function() { _spYield(fn, count - 1); }, 0); } else { fn(); } } function _spTrace(message) { } var g_spPreFetchKeys; function _spPreFetch() { _spDelayAfterAllScripts(function() { var sod; if (Boolean(_v_dictSod)) { _spTrace("-----Starting prefetch-----"); g_spPreFetchKeys.push("strings.js"); g_spPreFetchKeys.push("core.js"); if (typeof ribbon == "undefined" && typeof _ribbon != "undefined") { g_spPreFetchKeys.push("ribbon"); } for (var idx = 0; idx < g_spPreFetchKeys.length; idx++) { var key = g_spPreFetchKeys[idx]; sod = _v_dictSod[key]; if (Boolean(sod)) { LoadSod(sod); } } } }); if (typeof _ribbon != "undefined" && Boolean(_ribbon) && SP.SOD.get_ribbonImagePrefetchEnabled()) { window.setTimeout(function() { if (Boolean(document.images) && typeof _spPageContextInfo != "undefined" && typeof _spPageContextInfo.currentLanguage != "undefined") { window.imgRibbon32x32 = new Image(); var imgUrl = "/_layouts/15/" + String(_spPageContextInfo.currentLanguage) + "/images/formatmap32x32.png"; window.imgRibbon32x32.src = GetImageUrlWithRevision(imgUrl); window.imgRibbon16x16 = new Image(); imgUrl = "/_layouts/15/" + String(_spPageContextInfo.currentLanguage) + "/images/formatmap16x16.png"; window.imgRibbon16x16.src = GetImageUrlWithRevision(imgUrl); } }, 0); } } var _spSuppressFormOnSubmitWrapper; function _spFormOnSubmitWrapper() { if (_spSuppressFormOnSubmitWrapper) { return true; } if (_spFormOnSubmitCalled) { return false; } if (typeof _spFormOnSubmit == "function") { var retval = _spFormOnSubmit(); var testval = false; if (typeof retval == typeof testval && retval == testval) { return false; } } if (typeof _startOnSubmitStatement == "function") { return _startOnSubmitStatement(); } _spFormOnSubmitCalled = true; return true; } var _inlineEditString; var _spPageLoadedRegistered; function _spPageLoaded() { _spOriginalFormAction = null; EscapeFormAction(); RefreshInplViewState(); RefreshHeroButtonState(); InlineEditSetDefaultFocus(); } function InlineEditSetDefaultFocus() { if (_inlineEditString != null) { var index = _inlineEditString.indexOf("#"); if (index <= 0) return; var iidVal = _inlineEditString.substring(0, index); var trs = document.getElementsByTagName("TR"); for (var i = 0; i < trs.length; i++) { if (trs[i].getAttribute("automode") == iidVal) { var nodeWalkStr = _inlineEditString.substring(index + 1); var nodeWalks = nodeWalkStr.split(","); var node = trs[i]; for (var j = 0; j < nodeWalks.length; j++) { if (node == null) break; node = node.firstChild; for (var k = 0; k < nodeWalks[j]; k++) { if (node == null) break; node = node.nextSibling; } } if (node != null) focusControl(node); break; } } _inlineEditString = null; } } function focusControl(targetControl) { if (Sys.Browser.agent === Sys.Browser.InternetExplorer) { var oldContentEditableSetting; var focusTarget = targetControl; if (Boolean(focusTarget) && typeof focusTarget.contentEditable !== "undefined") { oldContentEditableSetting = focusTarget.contentEditable; focusTarget.contentEditable = false; } else { focusTarget = null; } try { targetControl.focus(); } catch (e) { } if (Boolean(focusTarget)) { focusTarget.contentEditable = oldContentEditableSetting; } } else { targetControl.focus(); } } function EscapeFormAction() { UpdateUrlWhenServerRedirects(); if (document.forms.length > 0 && !Boolean(_spOriginalFormAction)) { _spOriginalFormAction = document.forms[0].action; var url = _spOriginalFormAction; var index = url.indexOf("://"); if (index >= 0) { var temp = url.substring(index + 3); index = temp.indexOf("/"); if (index >= 0) url = temp.substring(index); if (url.length > 2 && url.charAt(0) == '/' && url.charAt(1) == '/') { url = url.substring(1); if (!(window["OffSwitch"] == null || OffSwitch.IsActive("B4F09056-2C39-4EE4-B928-21F236B7DEA5"))) { while (url.charAt(1) === '/') { url = url.charAt(0) + url.substring(2); } } } } if (url.length > 0) { _spEscapedFormAction = escapeUrlForCallback(url); document.forms[0].action = _spEscapedFormAction; document.forms[0]._initialAction = document.forms[0].action; } } } function RefreshHeroButtonState() { if (typeof _spWebPartComponents != "undefined") { for (var wp in _spWebPartComponents) { if (wp.length > 7) { var strId = wp.substr(7); var heroButton = window["heroButtonWebPart" + strId]; if (typeof heroButton != "undefined" && heroButton != null && heroButton == true) { var ele = document.getElementById("Hero-" + strId); if (ele != null) ele.style.display = ""; } } } } } function RefreshInplViewState() { if (typeof window.ctx == "undefined") return; var ctxLocal = window.ctx; if (ctxLocal.clvp == null) { EnsureScript("inplview", typeof InitAllClvps, function() { if (ctxLocal.clvp == null) InitAllClvps(); }); return; } var clvp = ctxLocal.clvp; var tab = clvp.tab; if (tab == null || tab != null && (tab.parentNode == null || tab.parentNode.innerHTML == null)) { FixDroppedOrPastedClvps(); if (ctxLocal.dictSel != null) { ctxLocal.dictSel = []; ctxLocal.CurrentSelectedItems = 0; } } } function RestoreToOriginalFormAction() { if (_spOriginalFormAction != null) { if (_spEscapedFormAction == document.forms[0].action) { document.forms[0].action = _spOriginalFormAction; document.forms[0]._initialAction = document.forms[0].action; } _spOriginalFormAction = null; _spEscapedFormAction = null; } } function DefaultFocus() { if (typeof _spUseDefaultFocus != "undefined") { var elements = document.getElementsByName("_spFocusHere"); var elem = null; if (elements == null || elements.length <= 0) { elem = document.getElementById("_spFocusHere"); } else if (elements != null && elements.length > 0) { elem = elements[0]; } if (elem != null) { var aLinks = elem.getElementsByTagName("a"); if (aLinks != null && aLinks.length > 0) { for (var i = 0; i < aLinks.length; i++) { if (aLinks[i].style.visibility != "hidden") { try { aLinks[i].focus(); } catch (e) { } break; } } } } } } var g_fAnimateListCSR; function ProcessDefaultOnLoad() { PrepareForModernOnePageNavigation(); UpdateUrlWhenServerRedirects(); ProcessPNGImages(); UpdateAccessibilityUI(); UpdateAnimationUserControl(false); window.setTimeout('ProcessImn()', 10); HandleDLPStatus(); ProcessOnLoadFunctionNames(_spBodyOnLoadFunctionNames); ProcessOnLoadFunctions(_spBodyOnLoadFunctions); if (typeof _spUseDefaultFocus != "undefined") DefaultFocus(); if ((ajaxNavigate.get_hash()).indexOf("InplviewHash") != -1) { EnsureScriptParams("inplview", "inplview.RestoreAllClvpsNavigation"); } ProcessReliabilityLogs(); } function ProcessOnLoadFunctionNames(onLoadFunctionNames) { if (onLoadFunctionNames != null) { for (var i = 0; i < onLoadFunctionNames.length; i++) { var expr = "if(typeof(" + onLoadFunctionNames[i] + ")=='function'){" + onLoadFunctionNames[i] + "();}"; eval(expr); } onLoadFunctionNames = []; } } function ProcessOnLoadFunctions(onLoadFunctions) { for (var i = 0; i < onLoadFunctions.length; i++) { onLoadFunctions[i](); } onLoadFunctions = []; } var g_fAreAllSodsLoaded; function ProcessReliabilityLogs() { if (!g_fAreAllSodsLoaded) { g_fAreAllSodsLoaded = AreAllSodsLoaded(); window.setTimeout(ProcessReliabilityLogs, 10); return; } SP.ReadyToUploadLogs(); } function CoreInvoke(fn) { var args = Array.prototype.slice.call(arguments, 1); var _corefn = function() { var ref = window[fn]; ref.apply(null, args); }; EnsureScript("core.js", TypeofFullName(fn), _corefn); return false; } function _bodyOnHashChangeHandler() { if (typeof _spBodyOnHashChange != 'undefined') _spBodyOnHashChange(); } var DeveloperDashboard; function ToggleDeveloperDashboard(siteRelativeUrl) { var wnd; if (!Boolean(siteRelativeUrl)) { siteRelativeUrl = ''; } if (GetCookie('WSS_DeveloperDashboard') == "true") { ddCloseWindow(DeveloperDashboard.wnd); } else { try { wnd = ddGetWindow(); if (ddIsWndValid(wnd)) { ddAttachToWindow(wnd); } else { ddOpenWindow(wnd, siteRelativeUrl); } } catch (e) { ddFail(wnd); } } } function ddFail(wnd) { if (Boolean(wnd)) wnd.close(); } function ddIsWndValid(wnd) { if ('unknown' == typeof wnd.location.href) throw null; return 'about:blank' !== wnd.location.href; } function ddResetState() { DeveloperDashboard.wnd = null; SetCookieEx(DeveloperDashboard.cookie, false, true, window); } function ddCloseWindow(wnd) { if (null != wnd) wnd.close(); ddResetState(); } function ddOpenWindow(wnd, siteRelativeUrl) { SetCookieEx(DeveloperDashboard.cookie, true, true, window); DeveloperDashboard.wnd = wnd; ddAdoptWindow(wnd, siteRelativeUrl); } function ddAdoptWindow(wnd, siteRelativeUrl) { wnd.location.href = siteRelativeUrl + '/_layouts/15/devdash.aspx'; if (browseris.chrome) window.setTimeout(function() { wnd.moveTo(screen.width / 2, 0); }, 100); else wnd.moveTo(screen.width / 2, 0); } function ddGetWindow() { var wnd, w, h; wnd = DeveloperDashboard.wnd; if (Boolean(wnd)) return wnd; w = screen.width; h = screen.height; wnd = window.open('', 'devdash', 'height=600,width=800,resizable=1,scrollbars=1,top=' + String(h) + ',left=' + String(w)); return wnd; } function ddAttachToWindow(wnd) { if (null != wnd) { ddHandshake(wnd); ddCScopeSet(); } else { ddResetHandshake(); ddCScopeReset(); } } function ddHandshake(wnd) { var tid; var count = 0; tid = setInterval(Wait, 20); function Wait() { var loaded; var currMsg; loaded = 'DeveloperDashboard' in wnd && 'Messaging' in wnd.DeveloperDashboard && 'PostMsg' in wnd.DeveloperDashboard.Messaging; if (loaded) { DeveloperDashboard.PostMsg = function(to, subject, msg) { try { wnd.DeveloperDashboard.Messaging.PostMsg(to, subject, msg); } catch (e) { } }; clearInterval(tid); if (null !== DeveloperDashboard.msgQueue) { for (var i = 0, len = DeveloperDashboard.msgQueue.length; i < len; i++) { currMsg = DeveloperDashboard.msgQueue[i]; DeveloperDashboard.PostMsg(currMsg.to, currMsg.subject, currMsg.msg); } } } else { if (100 == ++count) { clearInterval(tid); ddAttachToWindow(null); } } } } function ddResetHandshake() { DeveloperDashboard.msgQueue = null; DeveloperDashboard.PostMsg = function(to, subject, msg) { }; } function ddInit() { var wnd; var attached = false; if (GetCookie('WSS_DeveloperDashboard') == "true") { try { wnd = ddGetWindow(); if (ddIsWndValid(wnd)) { DeveloperDashboard.wnd = wnd; ddHandshake(wnd); attached = true; } else { wnd.close(); } } catch (e) { ddFail(wnd); } } if (!attached) { ddResetHandshake(); } } var CScope; function ddCScopeSet() { var hasETW; var nullScope; hasETW = typeof window.msWriteProfilerMark != 'undefined'; nullScope = null; function LogTime(timerName) { var time = (new Date).getTime(); if (hasETW) window.msWriteProfilerMark(timerName); return time; } function _CScope(scopeName, prefix) { this.Name = scopeName; this.Prefix = Boolean(prefix) ? prefix : 'Script'; this.Children = []; } _CScope.prototype = { Start: function() { _CScope.Start(this); this.StartTimeUtc = LogTime(this.Name); }, Stop: function() { this.EndTimeUtc = LogTime(this.Name); _CScope.Stop(this); }, Parent: null }; _CScope.Current = nullScope; _CScope.Start = function(scope) { scope.Parent = _CScope.Current; if (Boolean(_CScope.Current)) { _CScope.Current.Children.push(scope); } _CScope.Current = scope; }; _CScope.Stop = function(scope) { _CScope.Current = scope.Parent; if (null == _CScope.Current) { scope.Name = scope.Prefix + ' (' + scope.Name + ')'; if ("undefined" != typeof DeveloperDashboard.PostMsg) { DeveloperDashboard.PostMsg('MS.Scenarios', 'AddScenario', scope); } } }; CScope = _CScope; } function ddCScopeReset() { var noop = function() { }; function _CScopeMock(scopeName, prefix) { } _CScopeMock.prototype = { Start: noop, Stop: noop }; CScope = _CScopeMock; } function ddToggleCScope() { if (null != DeveloperDashboard.wnd) ddCScopeSet(); else ddCScopeReset(); } var flyoutsAllowed; function enableFlyoutsAfterDelay() { setTimeout("flyoutsAllowed = true;", 25); } function overrideMenu_HoverStatic(item) { if (!flyoutsAllowed) { setTimeout(delayMenu_HoverStatic(item), 50); } else { var node = Menu_HoverRoot(item); var data = Menu_GetData(item); if (!Boolean(data)) return; window.__disappearAfter = data.disappearAfter; Menu_Expand(node, data.horizontalOffset, data.verticalOffset); } } function delayMenu_HoverStatic(item) { return function() { overrideMenu_HoverStatic(item); }; } var g_ExecuteOrWaitJobs; function ExecuteOrDelayUntilEventNotified(func, eventName) { var executed = false; var eventInfo = g_ExecuteOrWaitJobs[eventName]; if (eventInfo != null && eventInfo.notified) { if (eventInfo.args != null) { func.apply(null, eventInfo.args); } else { func(); } return true; } else { DelayUntilEventNotified(func, eventName); return false; } } function DelayUntilEventNotified(func, eventName) { var eventInfo = g_ExecuteOrWaitJobs[eventName]; if (eventInfo == null) { eventInfo = new Object(); eventInfo.notified = false; eventInfo.jobs = []; eventInfo.args = null; g_ExecuteOrWaitJobs[eventName] = eventInfo; } eventInfo.jobs.push(func); } function NotifyEventAndExecuteWaitingJobs(eventName, args) { if (!Boolean(g_ExecuteOrWaitJobs)) return; var eventInfo = g_ExecuteOrWaitJobs[eventName]; if (eventInfo == null || typeof eventInfo == "undefined") { eventInfo = new Object(); eventInfo.notified = true; eventInfo.jobs = []; eventInfo.args = args; g_ExecuteOrWaitJobs[eventName] = eventInfo; } else { if (eventInfo.jobs != null) { for (var i = 0; i < eventInfo.jobs.length; i++) { var func = eventInfo.jobs[i]; if (args != null) { func.apply(null, args); } else { func(); } } } eventInfo.notified = true; eventInfo.jobs = []; eventInfo.args = args; } } function ExecuteOrDelayUntilScriptLoaded(func, depScriptFileName) { depScriptFileName = depScriptFileName.toLowerCase(); var eventName = "sp.scriptloaded-" + depScriptFileName; return ExecuteOrDelayUntilEventNotified(func, eventName); } function NotifyScriptLoadedAndExecuteWaitingJobs(scriptFileName) { scriptFileName = scriptFileName.toLowerCase(); if (typeof _v_dictSod != 'undefined') { if (typeof _v_dictSod[scriptFileName] == 'undefined') { switch (scriptFileName) { case "ie55up.js": if (typeof _v_dictSod["browserScript"] == 'undefined') RegisterSod("browserScript", null); _v_dictSod["ie55up.js"] = _v_dictSod["browserScript"]; break; case "sp.ribbon.js": if (typeof _v_dictSod["ribbon"] == 'undefined') RegisterSod("ribbon", null); _v_dictSod["sp.ribbon.js"] = _v_dictSod["ribbon"]; break; case "inplview.js": if (typeof _v_dictSod["inplview"] == 'undefined') RegisterSod("inplview", null); _v_dictSod["inplview.js"] = _v_dictSod["inplview"]; break; default: RegisterSod(scriptFileName, null); break; } } _v_dictSod[scriptFileName].state = 4; } var eventName = "sp.scriptloaded-" + scriptFileName; NotifyEventAndExecuteWaitingJobs(eventName); if (typeof g_MinimalDownload != 'undefined' && Boolean(g_MinimalDownload) && typeof RegisterModuleInit != 'undefined') { var lastSlashPos = scriptFileName.lastIndexOf('/'); if (-1 != lastSlashPos) { scriptFileName = scriptFileName.substring(lastSlashPos + 1); } var lastdotPos = scriptFileName.lastIndexOf('.'); var funcName = null; if (-1 == lastdotPos) funcName = scriptFileName; else funcName = scriptFileName.substring(0, lastdotPos); funcName = funcName.replace(/\./g, '_'); var funcPattern = new RegExp("^[A-Za-z0-9_\\-\$]+$"); if (Boolean(funcPattern.exec(funcName))) { funcName = "$_global_" + funcName; var initFuncName = null; try { initFuncName = window[funcName]; } catch (ex) { } ; if (null != initFuncName) { RegisterModuleInit(scriptFileName, initFuncName); } } } } function ExecuteOrDelayUntilBodyLoaded(func) { var eventName = "sp.bodyloaded"; return ExecuteOrDelayUntilEventNotified(func, eventName); } function NotifyBodyLoadedAndExecuteWaitingJobs() { var eventName = "sp.bodyloaded"; NotifyEventAndExecuteWaitingJobs(eventName); } function FFClick(elm) { var evt = document.createEvent("MouseEvents"); evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); elm.dispatchEvent(evt); } function _spOnSilverlightError(webPartId, sender, args) { if (args.errorType == "InitializeError") { _spSetSLErrorMessage(webPartId, Strings.STS.L_ErrorMessage_InitializeError); } } function _spSetSLPluginNotLoadedErrorMessage(webPartId) { _spSetSLErrorMessage(webPartId, Strings.STS.L_ErrorMessage_PluginNotLoadedError); } function _spSetSLErrorMessage(webPartId, strErrorMessage) { var strSilverlightErrorDivId = "SilverlightRuntimeErrorMessage_" + webPartId; var strDefaultConfigurationMessageDivId = "WebPartDefaultConfigurationMessage_" + webPartId; var strSilverlightObjectDivId = "SilverlightObjectDiv_" + webPartId; (document.getElementById(strSilverlightObjectDivId)).style.display = "none"; (document.getElementById(strSilverlightErrorDivId)).style.display = "block"; (document.getElementById(strSilverlightErrorDivId)).innerHTML = strErrorMessage; (document.getElementById(strDefaultConfigurationMessageDivId)).style.display = "block"; } var cuiKeyHash; function _processKeyCodes(val) { if (cuiKeyHash[val]) return cuiKeyHash[val]; return val; } var g_fhs; function _ribbonScaleHeader(elmTopBars, isRtl) { var elmTopBar2 = elmTopBars.childNodes[1]; var len = 0; if (Boolean(elmTopBar2)) len = elmTopBar2.childNodes.length; var elmTabHeaders = null; var elmTabRowRight = null; if (typeof isRtl == 'undefined') isRtl = false; if (typeof g_fhs == 'undefined') { if (typeof _ribbonShouldFixRtlHeaders == 'function') g_fhs = _ribbonShouldFixRtlHeaders(isRtl); else g_fhs = false; } for (var i = 0; i < len; i++) { var child = elmTopBar2.childNodes[i]; if (child.className.indexOf('ms-cui-tts') != -1) elmTabHeaders = child; else if (child.className.indexOf('ms-cui-TabRowRight') != -1) elmTabRowRight = child; } if (Boolean(elmTabHeaders) && 'undefined' == typeof elmTabHeaders._widthAdded && g_fhs) _ribbonFixHeaderWidth(elmTabHeaders); if (!Boolean(elmTabHeaders) || !Boolean(elmTabRowRight)) return; elmTabRowRight.style.display = 'block'; var needsScaling = _ribbonNeedsHeaderScaling(elmTopBar2, elmTabHeaders, elmTabRowRight, isRtl); if (needsScaling) { _ribbonHeaderScaleDown(elmTabHeaders); if (_ribbonNeedsHeaderScaling(elmTopBar2, elmTabHeaders, elmTabRowRight, isRtl)) { _ribbonHeaderScaleDown(elmTabHeaders); } } else { if (_ribbonGetScaleStep(elmTabHeaders) == 0) return; _ribbonHeaderScaleUp(elmTabHeaders); if (_ribbonNeedsHeaderScaling(elmTopBar2, elmTabHeaders, elmTabRowRight, isRtl)) { _ribbonHeaderScaleDown(elmTabHeaders); return; } if (_ribbonGetScaleStep(elmTabHeaders) == 0) return; _ribbonHeaderScaleUp(elmTabHeaders); if (_ribbonNeedsHeaderScaling(elmTopBar2, elmTabHeaders, elmTabRowRight, isRtl)) _ribbonHeaderScaleDown(elmTabHeaders); } if (_ribbonNeedsHeaderScaling(elmTopBar2, elmTabHeaders, elmTabRowRight, isRtl)) { elmTabRowRight.style.display = 'none'; } } function _ribbonNeedsHeaderScaling(elmTopBar2, elmTabHeaders, elmTabRowRight, isRtl) { if (elmTabHeaders.offsetWidth > 0 && elmTabRowRight.offsetWidth > 0 && _ribbonElementsWrap(elmTabHeaders, elmTabRowRight, isRtl)) { return true; } if (!g_fhs && _ribbonChildNodesWrapped(elmTabRowRight, isRtl)) return true; if (_ribbonChildNodesWrapped(elmTopBar2, isRtl)) return true; return _ribbonChildNodesWrapped(elmTabHeaders, isRtl); } function _ribbonChildNodesWrapped(elmParent, isRtl) { if (elmParent.offsetWidth == 0) return false; var elms = []; var count = elmParent.childNodes.length; var i; var elmChild; for (i = 0; i < count; i++) { elmChild = elmParent.childNodes[i]; if (Boolean(elmChild) && elmChild.nodeName != '#text' && elmChild.offsetWidth > 0 && elmChild.offsetHeight > 0) { elms.push(elmChild); } } count = elms.length; for (i = 0; i < count; i++) { elmChild = elms[i]; var elmSibling = elms[i + 1]; if (typeof elmSibling != 'undefined' && Boolean(elmSibling) && _ribbonElementsWrap(elmChild, elmSibling, isRtl)) { return true; } } return false; } function _ribbonElementsWrap(elmLeft, elmRight, isRtl) { if (!isRtl && elmLeft.offsetLeft + elmLeft.offsetWidth > elmRight.offsetLeft + 1) return true; else if (isRtl && elmRight.offsetLeft + elmRight.offsetWidth > elmLeft.offsetLeft + 1) return true; return false; } function _ribbonGetScaleStep(elm) { if ('undefined' == typeof elm._scaleStep) { elm._scaleStep = 0; if (elm.className.indexOf('ms-cui-tts-scale1') != -1) elm._scaleStep = 1; else if (elm.className.indexOf('ms-cui-tts-scale2') != -1) elm._scaleStep = 2; } return elm._scaleStep; } function _ribbonSetScaleStep(elm, value) { elm._scaleStep = value; } function _ribbonHeaderScaleDown(elmTabHeaders) { var scaleStep = _ribbonGetScaleStep(elmTabHeaders); if (scaleStep == 0) { _ribbonHeaderScaleIndex(elmTabHeaders, 1); } else if (scaleStep == 1 || scaleStep == 2) { _ribbonHeaderScaleIndex(elmTabHeaders, 2); } } function _ribbonHeaderScaleUp(elmTabHeaders) { var scaleStep = _ribbonGetScaleStep(elmTabHeaders); if (scaleStep == 1) _ribbonHeaderScaleIndex(elmTabHeaders, 0); else if (scaleStep == 2) { _ribbonHeaderScaleIndex(elmTabHeaders, 1); } } var g_ribbonHeaderScaleClass; function _ribbonHeaderScaleIndex(elmTabHeaders, index) { elmTabHeaders.className = g_ribbonHeaderScaleClass[index]; _ribbonSetScaleStep(elmTabHeaders, index); _ribbonFixHeaderWidth(elmTabHeaders); } function _ribbonFixHeaderWidth(elmTabHeaders) { if (!g_fhs) return; var width = _ribbonCalculateWidth(elmTabHeaders); elmTabHeaders.style.width = String(width) + 'px'; elmTabHeaders._widthAdded = true; } function _ribbonCalculateWidth(elmTabHeaders) { var width = 0; var tabs = elmTabHeaders.childNodes; var count = tabs.length; for (var i = 0; i < count; i++) { var elm = tabs[i]; if (Boolean(elm) && elm.nodeName == 'LI' && elm.offsetWidth > 0) { var ctxlGroup = elm.childNodes[1]; if (Boolean(ctxlGroup) && ctxlGroup.nodeName == 'UL') { var groupWidth = _ribbonCalculateWidth(ctxlGroup); ctxlGroup.style.width = String(groupWidth) + 'px'; width = width + groupWidth + 4; } else { width = width + elm.offsetWidth + 2; } } } return width; } function SPRibbonInfo() { } function _ribbonOnStartInit(ribbonInfo) { OnRibbonMinimizedChanged(ribbonInfo.initialTabId == "Ribbon.Read"); var _elmRibbon = document.getElementById("Ribbon"); if (!Boolean(_elmRibbon) || Boolean(ribbonInfo) && ribbonInfo.buildMinimized) return; var _elmTabCont = _elmRibbon.childNodes[2]; var bTabContainerExists = Boolean(_elmTabCont) && _elmTabCont.className.indexOf("ms-cui-tabContainer") != -1; if (!bTabContainerExists && ribbonInfo.initialTabId != "Ribbon.Read") { ExecuteOrDelayUntilScriptLoaded(function() { PrepareRibbonForAnimation(false, false); _elmTabCont = document.createElement("div"); _elmTabCont.className = "ms-cui-tabContainer"; var _elmBlankTab = document.createElement("ul"); _elmBlankTab.id = "Ribbon.BlankTab"; _elmBlankTab.className = "ms-cui-tabBody"; _elmBlankTab.innerHTML = "\"\"/" + Strings.STS.L_Loading_Text + ""; _elmTabCont.appendChild(_elmBlankTab); _elmRibbon.appendChild(_elmTabCont); AnimateRibbonMinimizedChanged(false); }, "core.js"); } } var StatusIdWithTopPriority; var StatusColorWithTopPriority; var StatusPriority; var StatusBarClassNames; var ColorMap; function getStatusTitle(statusId) { switch (statusId) { case 4: return Strings.STS.L_StatusBarRed_Text; case 3: return Strings.STS.L_StatusBarYellow_Text; case 2: return Strings.STS.L_StatusBarGreen_Text; case 1: return Strings.STS.L_StatusBarBlue_Text; default: return ""; } } var g_uniqueIndex; function getUniqueIndex() { g_uniqueIndex++; return g_uniqueIndex; } function addStatus(strTitle, strHtml, atBegining, isVanilla, bIsDismissible, dismissAltText) { var sb = document.getElementById("pageStatusBar"); if (sb != null) { sb.setAttribute("aria-live", "polite"); sb.setAttribute("aria-relevant", "all"); var st = _createStatusMarkup(strTitle, strHtml, true, isVanilla, bIsDismissible, dismissAltText); if (!atBegining) sb.appendChild(st); else { var refs = sb.getElementsByTagName("SPAN"); var ref = refs.length > 0 ? refs[0] : null; if (ref != null) sb.insertBefore(st, ref); else sb.appendChild(st); } if (sb.childNodes.length == 1) { StatusIdWithTopPriority = st.id; StatusColorWithTopPriority = 1; } sb.style.display = "block"; return st.id; } return null; } function addHybridTooltipDiv(strTitle, strHtml, strColor, isVanilla, bIsDismissible, dismissAltText) { var hybridTooltipDiv = document.createElement("div"); if (Boolean(hybridTooltipDiv)) { hybridTooltipDiv.id = "hybridTooltipStatusBar"; hybridTooltipDiv.setAttribute("aria-live", "polite"); hybridTooltipDiv.setAttribute("aria-relevant", "all"); hybridTooltipDiv.style.display = "block"; if (typeof strColor == 'string' && strColor in ColorMap) { hybridTooltipDiv.className = StatusBarClassNames[ColorMap[strColor]]; } var deltaPageStatusBar = document.getElementById("DeltaPageStatusBar"); deltaPageStatusBar.appendChild(hybridTooltipDiv); var st = _createStatusMarkup(strTitle, strHtml, true, isVanilla, bIsDismissible, dismissAltText); hybridTooltipDiv.appendChild(st); } return hybridTooltipDiv; } function appendStatus(sid, strTitle, strHtml) { var sb = document.getElementById("pageStatusBar"); var stRef = document.getElementById(sid); if (sb != null && stRef != null) { var st = null; if (Boolean(stRef.lastChild) && stRef.lastChild.tagName == "BR") { stRef.removeChild(stRef.lastChild); st = _createStatusMarkup(strTitle, strHtml, true); } else { st = _createStatusMarkup(strTitle, strHtml, false); } if (stRef.nextSibling != null) sb.insertBefore(st, stRef.nextSibling); else sb.appendChild(st); return st.id; } return null; } function _createStatusMarkup(strTitle, strHtml, bWithBR, bIsVanilla, bIsDismissible, dismissAltText) { var st = document.createElement("SPAN"); st.id = "status_" + String(getUniqueIndex()); st.className = "ms-status-status"; var rg = []; rg.push(""); rg.push(getStatusTitle(1) + Strings.STS.L_Status_Text); rg.push(""); if (!bIsVanilla) { rg.push(""); } if (strTitle.length != 0) { rg.push(""); rg.push(strTitle); rg.push(""); } rg.push(""); rg.push(strHtml); rg.push(""); if (bIsDismissible) { rg.push("\"");"); } } if (bWithBR && !bIsVanilla) rg.push("
"); st.innerHTML = rg.join(""); st.setAttribute("role", "alert"); st.priorityColor = 1; st.tabIndex = 0; return st; } function removeAllStatus(hide) { var sb = document.getElementById("pageStatusBar"); if (sb != null) { sb.innerHTML = ""; sb.className = StatusBarClassNames[1]; StatusColorWithTopPriority = null; StatusIdWithTopPriority = null; if (hide) sb.style.display = "none"; } } function setStatusPriColor(sid, strColor) { var st = document.getElementById(sid); if (st != null && typeof strColor == 'string') { if (strColor in StatusPriority) { st.priorityColor = StatusPriority[strColor]; } else { st.priorityColor = 1; } var hiddenSpan = st.firstChild; if (hiddenSpan != null && hiddenSpan.id == sid + "_hiddenPriMsg") { hiddenSpan.innerHTML = getStatusTitle(st.priorityColor) + Strings.STS.L_Status_Text; } if (sid == StatusIdWithTopPriority) { if (st.priorityColor >= StatusColorWithTopPriority) StatusColorWithTopPriority = st.priorityColor; else _selectStatusWithTopPriority(); } else { if (st.priorityColor > StatusColorWithTopPriority) { StatusIdWithTopPriority = sid; StatusColorWithTopPriority = st.priorityColor; } } var sb = document.getElementById("pageStatusBar"); if (Boolean(sb)) sb.className = StatusBarClassNames[StatusColorWithTopPriority]; } } function _selectStatusWithTopPriority() { var sb = document.getElementById("pageStatusBar"); if (sb != null) { var statusId = null; var statusColor = 1; var statuses = sb.childNodes; var statusesLen = statuses.length; var stat = null; for (var i = 0; i < statusesLen; i++) { stat = statuses[i]; if (typeof stat.priorityColor != 'undefined' && stat.priorityColor > statusColor) { statusColor = stat.priorityColor; statusId = stat.id; } } StatusIdWithTopPriority = statusId; StatusColorWithTopPriority = statusColor; } } function updateStatus(sid, strHtml) { var bid = sid + "_body"; var b = document.getElementById(bid); if (Boolean(b)) b.innerHTML = strHtml; } function removeStatus(sid) { var st = document.getElementById(sid); if (st != null) { if (Boolean(st.lastChild) && st.lastChild.tagName == "BR") { var prevSt = st.previousSibling; if (Boolean(prevSt) && Boolean(prevSt.lastChild) && prevSt.lastChild.tagName != "BR") { var br = document.createElement("BR"); prevSt.appendChild(br); } } st.parentNode.removeChild(st); var sb = document.getElementById("pageStatusBar"); if (Boolean(sb)) { if ((sb.getElementsByTagName("SPAN")).length == 0) { sb.className = StatusBarClassNames[1]; StatusColorWithTopPriority = null; StatusIdWithTopPriority = null; sb.style.display = "none"; } else { if (sid == StatusIdWithTopPriority) { _selectStatusWithTopPriority(); sb.className = StatusBarClassNames[StatusColorWithTopPriority]; } } } } } var g_dlgWndTop; var g_spDlgLauncher; var g_ModalDialogCount; var g_overlayPopup; var g_childDialog; function _dlgWndTop() { if (Boolean(g_dlgWndTop)) { return g_dlgWndTop; } try { var wnd = window; while (wnd != null && wnd != wnd.parent) { wnd = wnd.parent; if (wnd != null && wnd.g_spDlgLauncher) { g_dlgWndTop = wnd; } } } catch (e) { } finally { if (!Boolean(g_dlgWndTop)) { g_dlgWndTop = window; } } return g_dlgWndTop; } function commonShowModalDialog(url, features, callback, args) { function assocArray() { return []; } function assocArray_add(array, key, value) { array.push(key); array[key] = value; } function assocArray_keys(array) { var k = []; for (var j = 0; j < array.length; j++) k.push(array[j]); return k; } if (document.getElementById("__spPickerHasReturnValue") != null) (document.getElementById("__spPickerHasReturnValue")).value = ""; if (document.getElementById("__spPickerReturnValueHolder") != null) (document.getElementById("__spPickerReturnValueHolder")).value = ""; commonModalDialogReturnValue.clear(); var rv; if (Boolean(window.showModalDialog)) { rv = window.showModalDialog(url, args, features); if (Boolean(callback)) { invokeModalDialogCallback(callback, rv); } } else { var defaultWidth = 500, defaultHeight = 550, defaultScrollbars = "yes"; if (!Boolean(features)) features = "width=" + String(defaultWidth) + ",height=" + String(defaultHeight); else { var feats = assocArray(), fre, split; if (features.search(/^(\s*\w+\s*:\s*.+?\s*)(;\s*\s*\w+\s*:\s*.+?\s*)*(;\s*)?$/) != -1) { fre = /^\s*(\w+)\s*:\s*(.+?)\s*$/; split = features.split(/\s*;\s*/); } else { fre = /^\s*(\w+)\s*=\s*(.+?)\s*$/; split = features.split(/\s*,\s*/); } for (var feat in split) { var kv = fre.exec(split[feat]); if (Boolean(kv) && kv.length == 3) assocArray_add(feats, kv[1].toLowerCase(), kv[2]); } if (!Boolean(feats["width"])) assocArray_add(feats, "width", feats["dialogwidth"] || Boolean(defaultWidth)); if (!Boolean(feats["height"])) assocArray_add(feats, "height", feats["dialogheight"] || Boolean(defaultHeight)); if (!Boolean(feats["scrollbars"])) assocArray_add(feats, "scrollbars", feats["scroll"] || Boolean(defaultScrollbars)); features = ''; var keys = assocArray_keys(feats); for (var i in keys) { if (Boolean(features)) features += ","; features += keys[i] + "=" + feats[keys[i]]; } } var modalDialog = window.open(url, '_blank', features + ',modal=yes,dialog=yes'); modalDialog.dialogArguments = args; window.onfocus = function() { var bHasReturnValue = document.getElementById("__spPickerHasReturnValue") != null && (document.getElementById("__spPickerHasReturnValue")).value == "1" || commonModalDialogReturnValue.isSet(); if (Boolean(modalDialog) && !modalDialog.closed && !bHasReturnValue) { modalDialog.focus(); } else { window.onfocus = null; if (Boolean(callback)) { invokeModalDialogCallback(callback, rv); } } }; if (!browseris.ie) { if (window.frameElement != null) { window.fndlgClose = callback; } } } return rv; } function invokeModalDialogCallback(callback, rv) { if (typeof rv != "undefined" && rv != null) { callback(rv); } else if (commonModalDialogReturnValue.isSet()) { rv = commonModalDialogReturnValue.get(); callback(rv); commonModalDialogReturnValue.clear(); } else if (document.getElementById("__spPickerHasReturnValue") != null && (document.getElementById("__spPickerHasReturnValue")).value == "1" && document.getElementById("__spPickerReturnValueHolder") != null) { rv = (document.getElementById("__spPickerReturnValueHolder")).value; callback(rv); } return rv; } function setModalDialogReturnValue(wnd, returnValue) { if (wnd.opener != null && typeof returnValue == 'string' && wnd.opener.document.getElementById('__spPickerHasReturnValue') != null && wnd.opener.document.getElementById('__spPickerReturnValueHolder') != null) { (wnd.opener.document.getElementById('__spPickerHasReturnValue')).value = '1'; (wnd.opener.document.getElementById('__spPickerReturnValueHolder')).value = returnValue; } else { setModalDialogObjectReturnValue(wnd, returnValue); } if (browseris.safari125up || browseris.msEdge) { if (wnd.opener != null && wnd.opener.fndlgClose != null) wnd.opener.fndlgClose(returnValue); } } function setModalDialogObjectReturnValue(wnd, returnValue) { if (Boolean(wnd.showModalDialog)) { wnd.returnValue = returnValue; } if (wnd.opener != null) { if (typeof wnd.opener.commonModalDialogReturnValue != 'undefined') { var retVal = wnd.opener.commonModalDialogReturnValue; retVal.set(returnValue); } } } function CommonGlobalDialogReturnValue_InitializePrototype() { CommonGlobalDialogReturnValue.prototype.hasRetVal = undefined; CommonGlobalDialogReturnValue.prototype.retVal = undefined; CommonGlobalDialogReturnValue.prototype.set = function(obj) { if (typeof obj != "undefined") { this.retVal = obj; this.hasRetval = true; } }; CommonGlobalDialogReturnValue.prototype.isSet = function() { return this.hasRetval; }; CommonGlobalDialogReturnValue.prototype.get = function() { if (this.hasRetval) return this.retVal; else return undefined; }; CommonGlobalDialogReturnValue.prototype.clear = function() { this.hasRetval = false; this.retVal = null; }; } function CommonGlobalDialogReturnValue() { } var commonModalDialogReturnValue; function commonModalDialogOpen(url, options, callback, args) { options.url = url; options.dialogReturnValueCallback = callback; options.args = args; EnsureScriptParams("SP.UI.Dialog.js", "SP.UI.ModalDialog.showModalDialog", options); } function commonModalDialogClose(dialogResult, returnValue) { var dlg = null; var wndTop = _dlgWndTop(); if (typeof wndTop.g_childDialog != 'undefined') dlg = wndTop.g_childDialog; if (Boolean(dlg)) { dlg.set_returnValue(returnValue); dlg.close(dialogResult); } } function commonModalDialogHide() { var dlg; var wndTop = _dlgWndTop(); if (typeof wndTop.g_childDialog != 'undefined') dlg = wndTop.g_childDialog; if (Boolean(dlg)) { dlg.hide(); } } function commonModalDialogGetArguments() { var dlg; var wndTop = _dlgWndTop(); if (typeof wndTop.g_childDialog != 'undefined') dlg = wndTop.g_childDialog; if (Boolean(dlg) && typeof dlg.get_args != "undefined") return dlg.get_args(); return null; } function ShowPopupDialog(dlgUrl) { ShowPopupDialogWithCallback(dlgUrl, PopupDialogCallback); } function ShowPopupDialogWithCallback(dlgUrl, dialogCallback) { if (FV4UI()) { var dlgOptions = { url: dlgUrl, dialogReturnValueCallback: dialogCallback }; EnsureScriptParams("SP.UI.Dialog.js", "SP.UI.ModalDialog.showModalDialog", dlgOptions); } else Nav.navigate(dlgUrl); } function PopupDialogCallback(dialogResult, returnValue) { if (dialogResult == 1) { Nav.navigate((_dlgWndTop()).location.href); } } function SelectField(view, selectID) { CoreInvoke('_SelectField', view, selectID); } function FilterField(view, fieldName, fieldValue, selOption) { CoreInvoke('_FilterField', view, fieldName, fieldValue, selOption); } function SetControlValue(controlId, value) { CoreInvoke('_SetControlValue', controlId, value); } function SubmitFormPost(url, bForceSubmit, bDemoteIntoFormBody) { CoreInvoke('_SubmitFormPost', url, bForceSubmit, bDemoteIntoFormBody); } function SuiteOnClick(clickHandler) { CoreInvoke('_SuiteOnClick', clickHandler); } function GoToPageRelative(url) { CoreInvoke('_GoToPageRelative', url); } function EnterFolder(url) { CoreInvoke('_EnterFolder', url); } function HandleFolder(ele, objEvent, url, fTransformServiceOn, fShouldTransformExtension, fTransformHandleUrl, strHtmlTrProgId, iDefaultItemOpen, strProgId, strHtmlType, strServerFileRedirect, strCheckoutUser, strCurrentUser, strRequireCheckout, strCheckedoutTolocal, strPermmask) { PreventDefaultNavigation(); CoreInvoke('_HandleFolder', ele, objEvent, url, fTransformServiceOn, fShouldTransformExtension, fTransformHandleUrl, strHtmlTrProgId, iDefaultItemOpen, strProgId, strHtmlType, strServerFileRedirect, strCheckoutUser, strCurrentUser, strRequireCheckout, strCheckedoutTolocal, strPermmask); } function VerifyFolderHref(ele, objEvent, url, strHtmlTrProgId, iDefaultItemOpen, strProgId, strHtmlType, strServerFileRedirect) { CoreInvoke('_VerifyFolderHref', ele, objEvent, url, strHtmlTrProgId, iDefaultItemOpen, strProgId, strHtmlType, strServerFileRedirect); } function VerifyHref(ele, objEvent, iDefaultItemOpen, strProgId, strServerFileRedirect) { CoreInvoke('_VerifyHref', ele, objEvent, iDefaultItemOpen, strProgId, strServerFileRedirect); } function DispEx(ele, objEvent, fTransformServiceOn, fShouldTransformExtension, fTransformHandleUrl, strHtmlTrProgId, iDefaultItemOpen, strProgId, strHtmlType, strServerFileRedirect, strCheckoutUser, strCurrentUser, strRequireCheckout, strCheckedoutTolocal, strPermmask) { g_MDNav = (function(u) { return u; })(); CoreInvoke('_DispEx', ele, objEvent, fTransformServiceOn, fShouldTransformExtension, fTransformHandleUrl, strHtmlTrProgId, iDefaultItemOpen, strProgId, strHtmlType, strServerFileRedirect, strCheckoutUser, strCurrentUser, strRequireCheckout, strCheckedoutTolocal, strPermmask); return g_MDNav; } function EditItemWithCheckoutAlert(evt, Url, bCheckout, bIsCheckedOutToLocal, strDocument, strhttpRoot, strCurrentUser, strCheckoutUser) { CoreInvoke('_EditItemWithCheckoutAlert', evt, Url, bCheckout, bIsCheckedOutToLocal, strDocument, strhttpRoot, strCurrentUser, strCheckoutUser); } function STSNavigateWithCheckoutAlert(Url, bCheckout, bIsCheckedOutToLocal, strDocument, strhttpRoot, strCurrentUser, strCheckoutUser) { CoreInvoke('_STSNavigateWithCheckoutAlert', Url, bCheckout, bIsCheckedOutToLocal, strDocument, strhttpRoot, strCurrentUser, strCheckoutUser); } function NewItem2(evt, url) { CoreInvoke('_NewItem2', evt, url); } function NewItem(url) { CoreInvoke('_NewItem', url); } function EditItem2(evt, url) { CoreInvoke('_EditItem2', evt, url); } function EditItem(url) { CoreInvoke('_EditItem', url); } function RefreshPageTo(evt, url, bForceSubmit) { CoreInvoke('_RefreshPageTo', evt, url, bForceSubmit); } function AddGroupToCookie(groupName) { CoreInvoke('_AddGroupToCookie', groupName); } function RemoveGroupFromCookie(groupName) { CoreInvoke('_RemoveGroupFromCookie', groupName); } function ExpGroupBy(formObj) { CoreInvoke('_ExpGroupBy', formObj); } function DispDocItem(ele, strProgId) { CoreInvoke('_DispDocItem', ele, strProgId); } function DispDocItemExWithServerRedirect(ele, objEvent, fTransformServiceOn, fShouldTransformExtension, fTransformHandleUrl, strProgId, iDefaultItemOpen, strServerFileRedirect) { CoreInvoke('_DispDocItemExWithServerRedirect', ele, objEvent, fTransformServiceOn, fShouldTransformExtension, fTransformHandleUrl, strProgId, iDefaultItemOpen, strServerFileRedirect); } function DispDocItemExWithServerRedirectOrNavigate(ele, objEvent, fTransformServiceOn, fShouldTransformExtension, fTransformHandleUrl, strProgId, iDefaultItemOpen, strServerFileRedirect) { if (IsSupportedMacBrowser() && !(window["OffSwitch"] == null || OffSwitch.IsActive("BDD1B8EC-6631-4FD1-B8DE-BB70531B030E"))) { NavigateElementHref(ele); } else { DispDocItemExWithServerRedirect(ele, objEvent, fTransformServiceOn, fShouldTransformExtension, fTransformHandleUrl, strProgId, iDefaultItemOpen, strServerFileRedirect); } } function DispDocItemEx(ele, fTransformServiceOn, fShouldTransformExtension, fTransformHandleUrl, strProgId) { CoreInvoke('_DispDocItemEx', ele, fTransformServiceOn, fShouldTransformExtension, fTransformHandleUrl, strProgId); } function PortalPinToMyPage(eForm, portalUrl, instanceId, listTitle, listDescription, listViewUrl, baseType, serverTemplate) { CoreInvoke('_PortalPinToMyPage', eForm, portalUrl, instanceId, listTitle, listDescription, listViewUrl, baseType, serverTemplate); } function MoveToViewDate(strdate, view_type, ctxid) { CoreInvoke('_MoveToViewDate', strdate, view_type, ctxid); } function MoveToDate(strdate, ctxid) { CoreInvoke('_MoveToDate', strdate, ctxid); } function ClickDay(date) { CoreInvoke('_ClickDay', date); } function GetMonthView(str) { CoreInvoke('_GetMonthView', str); } function OptLoseFocus(opt) { CoreInvoke('_OptLoseFocus', opt); } function SetCtrlFromOpt(ctrl, opt) { CoreInvoke('_SetCtrlFromOpt', ctrl, opt); } function ChangeLayoutMode(p1, p2) { CoreInvoke('_ChangeLayoutMode', p1, p2); } function MSOLayout_ChangeLayoutMode(p1, p2) { ChangeLayoutMode(p1, p2); } function WebPartMenuKeyboardClick(elem, expectedKeyCode1, expectedKeyCode2, evt) { CoreInvoke('_WebPartMenuKeyboardClick', elem, expectedKeyCode1, expectedKeyCode2, evt); } function ShowToolPane2Wrapper(p1, p2, p3) { CoreInvoke('_ShowToolPane2Wrapper', p1, p2, p3); } function EditInSPD(strDocument, bRefresh) { CoreInvoke('_EditInSPD', strDocument, bRefresh); } function SetupFixedWidthWebParts() { CoreInvoke('_SetupFixedWidthWebParts'); } function ToggleAllItems(evt, cbx, ctxNum) { CoreInvoke('_ToggleAllItems', evt, cbx, ctxNum); } function CommandUIExecuteCommand(commandId) { CoreInvoke('_CommandUIExecuteCommand', commandId); } function PopMenuFromChevron(e) { CoreInvoke('_PopMenuFromChevron', e); } function ListHeaderMenu_OnMouseDown(e) { CoreInvoke('_ListHeaderMenu_OnMouseDown', e); } function NavigateToSubNewAspx(strHttpRoot, strArgs) { CoreInvoke('_NavigateToSubNewAspx', strHttpRoot, strArgs); } function NavigateToManagePermsPage(strHttpRoot, strListId, strFileRef) { CoreInvoke('_NavigateToManagePermsPage', strHttpRoot, strListId, strFileRef); } function DoNavigateToTemplateGallery(strSaveLocUrl, strTGUrl) { CoreInvoke('_DoNavigateToTemplateGallery', strSaveLocUrl, strTGUrl); } function RefreshPage(dialogResult) { CoreInvoke('_RefreshPage', dialogResult); } function OpenPopUpPage(url, callback, width, height) { CoreInvoke('_OpenPopUpPage', url, callback, width, height); } function GoToCreateNewPage() { CoreInvoke('_GoToCreateNewPage'); } function OpenCreateWebPageDialog(url) { CoreInvoke('_OpenCreateWebPageDialog', url); } function EditLink2(elm, ctxNum) { CoreInvoke('_EditLink2', elm, ctxNum); } function GoBack(defViewUrl) { CoreInvoke('_GoBack', defViewUrl); } function ReplyItem(url, threading, guid, subject) { CoreInvoke('_ReplyItem', url, threading, guid, subject); } function ExportToDatabase(strSiteUrl, strListID, strViewID, fUseExistingDB) { CoreInvoke('_ExportToDatabase', strSiteUrl, strListID, strViewID, fUseExistingDB); } function ExportList(using) { CoreInvoke('_ExportList', using); } function ClearSearchTerm(guidView) { CoreInvoke('_ClearSearchTerm', guidView); } function SubmitSearchForView(ViewGuid) { CoreInvoke('_SubmitSearchForView', ViewGuid); } function SubmitSearchRedirect(strUrl) { CoreInvoke('_SubmitSearchRedirect', strUrl); } function AlertAndSetFocus(msg, fieldName) { CoreInvoke('_AlertAndSetFocus', msg, fieldName); } function AlertAndSetFocusForDropdown(msg, fieldName) { CoreInvoke('_AlertAndSetFocusForDropdown', msg, fieldName); } function AddSilverlightWebPart(item, zoneNum, zoneIndex) { CoreInvoke('_AddSilverlightWebPart', item, zoneNum, zoneIndex); } function UserSelectionOnClick(chk, viewCounter) { CoreInvoke('_UserSelectionOnClick', chk, viewCounter); } function OnIframeLoad() { CoreInvoke('_OnIframeLoad'); } function OnFocusFilter(elm) { CoreInvoke('_OnFocusFilter', elm); } function TopHelpButtonClick(strParam, evt) { cancelDefault(evt); CoreInvoke('_TopHelpButtonClick', strParam); } function HelpWindowKey(strKey) { CoreInvoke('_HelpWindowKey', strKey); } function HelpWindowUrl(strUrl) { CoreInvoke('_HelpWindowUrl', strUrl); } function HelpWindow() { CoreInvoke('_HelpWindow'); } function ToggleFullScreenMode() { CoreInvoke('_ToggleFullScreenMode'); } function OnClickFilter(obj, e) { return CoreInvoke('_OnClickFilter', obj, e); } function GCActivateAndFocus(GCObject) { CoreInvoke('_GCActivateAndFocus', GCObject); } function GCNavigateToNonGridPage() { CoreInvoke('_GCNavigateToNonGridPage'); } function _spBodyOnHashChange() { ajaxNavigate._raiseNavigate(ajaxNavigate); } function setInnerText(elem, text) { var doc = elem.ownerDocument; if (Boolean(doc.createTextNode)) { var textNode = doc.createTextNode(text); elem.innerHTML = ''; elem.appendChild(textNode); } else { elem.innerText = text; } } var SPListView; var getSharingHintHtml; var onSharingHintClicked; function RegisterSharedWithFieldRenderer() { if (typeof ComputedFieldWorker !== 'undefined' && ComputedFieldWorker !== null) { ComputedFieldWorker['SharedWith'] = RenderSharedWithField; } function RenderSharedWithField(renderCtx, field, listSchema) { if (renderCtx.CurrentItem.PrincipalCount == null) { return ''; } var strHTML = []; strHTML.push(''); strHTML.push(getSharingHintHtml(renderCtx.CurrentItem, null)); strHTML.push(""); return strHTML.join(""); } getSharingHintHtml = function(ctxListItem, csomSharedWithUsers) { var tooltip = ctxListItem.PrincipalCount < 1 ? Strings.STS.L_SharedWithNone : Strings.STS.L_SharingHintShared; var strHTML = []; strHTML.push(''); strHTML.push(getSharingHintIconHtml(ctxListItem)); if (Flighting.VariantConfiguration.IsExpFeatureClientEnabled(144) && _spPageContextInfo.webUIVersion >= 15) strHTML.push(getSharingHintString(ctxListItem, csomSharedWithUsers)); strHTML.push(''); return strHTML.join(""); }; var getSharingHintString = function(ctxListItem, csomSharedWithUsers) { var sharingStr = Strings.STS.L_SharedWithNone_Short; var principalCount = Number(ctxListItem.PrincipalCount); var sharedUsers = Boolean(csomSharedWithUsers) ? csomSharedWithUsers : ctxListItem.SharedWithUsers; if (principalCount > 0) { sharingStr = Strings.STS.L_SharingHintShared_Short; } var sharingHintHtml = "" + Encoding.HtmlEncode(sharingStr) + ""; return sharingHintHtml; }; var getSharingHintIconHtml = function(ctxListItem) { var tooltip = ''; var imageClass = ''; var principalCount = Number(ctxListItem.PrincipalCount); if (principalCount < 1) { tooltip = Strings.STS.L_SharedWithNone; imageClass = 'js-sharingHint-unshared'; } else { imageClass = 'js-sharingHint-sharedDefault'; tooltip = Strings.STS.L_SharingHintShared; } var iconHtml = '' + ' + StAttrQuote(tooltip) + '; return iconHtml; }; onSharingHintClicked = function(elt) { var iid = findIIDInAncestorNode(elt); var ctxListItem = GetListItemByIID(iid); var ctxRgiid = GetCtxRgiidFromIid(iid); var viewCtx = ctxRgiid.ctx; _WriteDocEngagement("Documents_SharingIconClick", "OneDrive_SharingIconClick"); SP.SOD.executeFunc("sharing.js", "DisplaySharedWithDialog", function() { var forceReadOnly = !permMaskContains(ctxListItem.PermMask, 0x0, 0x2000000); DisplaySharedWithDialogCore(viewCtx.HttpRoot, viewCtx.listName, ctxListItem.ID, forceReadOnly, null, ctxListItem["FSObjType"], ctxListItem["HTML_x0020_File_x0020_Type"], false, viewCtx.RealHttpRoot); }); }; } function CalloutRenderViewTemplate(renderCtx) { var iStr = ''; iStr += renderCtx.RenderHeader(renderCtx); iStr += renderCtx.RenderBody(renderCtx); iStr += renderCtx.RenderFooter(renderCtx); return iStr; } function CalloutRenderHeaderTemplate(renderCtx) { var calloutID = GetCalloutElementIDFromRenderCtx(renderCtx); var title = ''; if (renderCtx.ListSchema.IsDocLib == '1') { title = renderCtx.CurrentItem.FileLeafRef; } else { title = renderCtx.CurrentItem.Title; } return Callout.GenerateDefaultHeader(calloutID, Encoding.HtmlEncode(title), null, true); } function CalloutRenderFooterTemplate(renderCtx, calloutActionMenuPopulator, renderECB) { if (typeof calloutActionMenuPopulator === 'undefined' || calloutActionMenuPopulator === null) { calloutActionMenuPopulator = CalloutOnPostRenderTemplate; } if (typeof renderECB === 'undefined' || renderECB === null) { renderECB = true; } var calloutID = GetCalloutElementIDFromRenderCtx(renderCtx); SPClientRenderer.AddPostRenderCallback(renderCtx, function() { var calloutActionMenu = new CalloutActionMenu(calloutID + '-actions'); calloutActionMenuPopulator(renderCtx, calloutActionMenu); calloutActionMenu.render(); }); var ecbMarkup = []; if (renderECB) { ecbMarkup.push(''); ecbMarkup.push(RenderECBinline(renderCtx, renderCtx.CurrentItem, renderCtx.CurrentFieldSchema)); ecbMarkup.push(''); } return Callout.GenerateDefaultFooter(calloutID, ecbMarkup.join('')); } function CalloutRenderBodyTemplate(renderCtx) { var itemTpls = renderCtx.Templates['Item']; if (itemTpls == null || itemTpls == {}) return ''; var listData = renderCtx.ListData; var listSchema = renderCtx.ListSchema; var bHasHeader = renderCtx.Templates.Header != ''; var groupTpls = renderCtx.Templates['Group']; if (groupTpls == null || typeof RenderItemTemplateDefault != "undefined" && groupTpls == RenderItemTemplateDefault || typeof groupTpls != "function" && typeof groupTpls != "string") groupTpls = RenderGroupTemplate; else if (typeof groupTpls == "string") groupTpls = SPClientRenderer.ParseTemplateString(groupTpls, renderCtx); var ItemTpl = renderCtx.Templates['Item']; if (ItemTpl == null || typeof RenderFieldTemplateDefault != "undefined" && ItemTpl == RenderFieldTemplateDefault || typeof ItemTpl != "function" && typeof ItemTpl != "string") ItemTpl = RenderItemTemplate; else if (typeof ItemTpl == "string") ItemTpl = SPClientRenderer.ParseTemplateString(ItemTpl, renderCtx); var listItem = renderCtx.CurrentItem; var itemType = listItem['ItemType']; var tpl = itemTpls[itemType]; if (tpl == null || tpl == '') { tpl = ItemTpl; } else if (typeof tpl == 'string') { tpl = SPClientRenderer.ParseTemplateString(tpl, renderCtx); itemTpls[itemType] = tpl; } return Callout.GenerateDefaultBody(GetCalloutElementIDFromRenderCtx(renderCtx), SPClientRenderer.CoreRender(tpl, renderCtx)); } function CalloutRenderItemTemplate(renderCtx) { var ret = []; if (renderCtx.ListSchema.IsDocLib) { ret.push(CalloutRenderFilePreview(renderCtx)); } ret.push(CalloutRenderDlpNotificationPlaceholder(renderCtx)); ret.push(CalloutRenderLastModifiedInfo(renderCtx)); ret.push(CalloutRenderSharingStatus(renderCtx)); ret.push(CalloutRenderSourceUrl(renderCtx)); return ret.join(''); } var RenderECBinline; function _createNewDocumentCallout(rCtx, hideUploadLink, launchPointOverride, qcbPollCallback) { function createNewDocumentCore() { var wpq = rCtx.wpq; var launchPoint = Boolean(launchPointOverride) ? launchPointOverride : document.getElementById(ListModule.Util.addWPQtoId(c_newdocWOPIID + 'Hero', wpq)); if (Boolean(launchPoint)) { var callout = CalloutManager.getFromLaunchPointIfExists(launchPoint); if (!Boolean(callout) && Boolean(rCtx.NewWOPIDocumentUrl)) { var createDocUrl = rCtx.NewWOPIDocumentUrl + '&Source=' + Nav.getSource(); var contDivHtml = RenderNewDocumentCallout(rCtx, createDocUrl); callout = CalloutManager.createNewIfNecessary({ launchPoint: launchPoint, ID: ListModule.Util.addWPQtoId(c_newdocWOPIID, wpq), title: Strings.STS.L_NewDocumentCalloutTitle, content: contDivHtml, onOpeningCallback: function(cl) { NewDocumentCallout_OnOpeningCallback(rCtx, createDocUrl, cl); }, onOpenedCallback: function(cl) { NewDocumentCallout_OnOpenedCallback(rCtx); }, beakOrientation: 'leftRight', contentWidth: c_newDocCalloutWidth, allowScroll: true, boundingBox: document.getElementById('s4-workspace') }); if (Boolean(callout) && ListModule.Util.canUploadFile(rCtx) && !hideUploadLink) { var uploadUrl = rCtx.HttpRoot + "/_layouts/15/Upload.aspx" + '?List=' + rCtx.listName + '&RootFolder=' + rCtx.rootFolder; callout.addAction(new CalloutAction({ text: Strings.STS.L_NewDocumentUploadFile, onClickCallback: function(calloutActionClickEvent, calloutAction) { CalloutManager.closeAll(); NewItem2(calloutActionClickEvent, uploadUrl); return false; } })); } } } rCtx.qcbNewButtonConfigured = true; if (typeof qcbPollCallback == "function") { qcbPollCallback(); } } EnsureScript('callout.js', typeof CalloutManager, function() { var eventInfo = g_ExecuteOrWaitJobs["sp.ribbon.js"]; if (Boolean(window["toolbarData" + rCtx.wpq]) || eventInfo === null || Boolean(_v_dictSod) && !Boolean(_v_dictSod['ribbon'])) createNewDocumentCore(); else ExecuteOrDelayUntilScriptLoaded(createNewDocumentCore, "sp.ribbon.js"); }); } var DisplaySharingDialogCore; function DisplaySharingDialogForListItem(renderCtx, listItemID, tabId) { var noItemGiven = typeof listItemID === "undefined"; var tooManyItemsSelected = renderCtx.currentSelectedItems > 1; var notInsideAFolder = renderCtx.currentSelectedItems === 0 && !Boolean(renderCtx.ListData.FolderId); if (noItemGiven && (tooManyItemsSelected || notInsideAFolder)) { WriteDebugLog("DocLib_DispShareDlgInvalidSelection", true, "Attempted to open sharing dialog for " + renderCtx.CurrentSelectedItems + " items. We only support sharing 1 at a time."); return; } EnsureScriptFunc("sharing.js", "DisplaySharingDialogCore", function() { var fsObjType; var fileType; if (typeof listItemID === "undefined") { if (renderCtx.CurrentSelectedItems == 1) { var selectedItemIID; for (selectedItemIID in renderCtx.dictSel) { listItemID = renderCtx.dictSel[selectedItemIID].id; break; } } else if (Boolean(renderCtx.ListData.FolderId)) { listItemID = String(renderCtx.ListData.FolderId); fsObjType = 1; fileType = ""; } } if (Boolean(listItemID)) { var currentItem = null; if (Boolean(renderCtx.CurrentItem)) { currentItem = renderCtx.CurrentItem; } else { for (var itemId in renderCtx.ListData.Row) { var item = renderCtx.ListData.Row[itemId]; if (Boolean(item) && item.ID == listItemID) { currentItem = item; break; } } } if (Boolean(currentItem) && !Boolean(fsObjType) && !Boolean(fileType)) { fsObjType = currentItem["FSObjType"]; fileType = currentItem["HTML_x0020_File_x0020_Type"]; } } if (!Boolean(renderCtx.RealHttpRoot)) { DisplaySharingDialogCore(renderCtx.HttpRoot, renderCtx.listName, listItemID, !isNaN(tabId) ? tabId : 0, fsObjType, fileType, void 0, document.activeElement); } else { DisplaySharingDialogCore(renderCtx.HttpRoot, renderCtx.listName, listItemID, 0, fsObjType, fileType, false, document.activeElement, renderCtx.RealHttpRoot); } }); } var CALLOUT_STR_ELLIPSIS; var CALLOUT_ELLIPSIS_LENGTH; var CALLOUT_CHARS_TO_TRUNCATE_PER_ITERATION; function displayTruncatedString(element, string, maxWidth) { var lastWidth = element.offsetWidth; while (element.offsetWidth > maxWidth) { var newLengthToTry = element.innerHTML.length - CALLOUT_CHARS_TO_TRUNCATE_PER_ITERATION; element.innerHTML = safeTruncateString(element.innerHTML, newLengthToTry) + CALLOUT_STR_ELLIPSIS; if (element.offsetWidth === lastWidth) { Sys.Debug.assert(false, "String truncation is not affecting element width. Element must not be setup correctly."); return element.innerHTML; } lastWidth = element.offsetWidth; } if (element.innerHTML.length < string.length) { element.title = string; } return element.innerHTML; } function displayTruncatedLocation(element, maxHeight) { var charsToTruncate = 1 + CALLOUT_ELLIPSIS_LENGTH; while (element.offsetHeight > maxHeight) { var newLengthToTry = element.innerHTML.length - charsToTruncate; element.innerHTML = CALLOUT_STR_ELLIPSIS + safeTruncateStringFromStart(element.innerHTML, newLengthToTry); } return element.innerHTML; } function displayTruncatedUrl(element, fullUrl, maxWidth, allowTruncateQuery) { var MIN_AUTHORITY_LENGTH_IN_CHARS = 4; var urlToDisplay = new URI(fullUrl.getString()); element.innerHTML = Encoding.HtmlEncode(urlToDisplay.getDecodedStringForDisplay()); var lastWidth = element.offsetWidth; while (element.offsetWidth > maxWidth) { var path = urlToDisplay.getPath(); var authority = urlToDisplay.getAuthority(); var query = urlToDisplay.getQuery(); var indexOfNextSlash = path.indexOf('/', CALLOUT_ELLIPSIS_LENGTH + 2); if (indexOfNextSlash >= 0) { path = '/' + CALLOUT_STR_ELLIPSIS + path.substr(indexOfNextSlash); urlToDisplay.setPath(path); } else if (allowTruncateQuery && query.length > CALLOUT_CHARS_TO_TRUNCATE_PER_ITERATION) { query = safeTruncateString(query, query.length - CALLOUT_CHARS_TO_TRUNCATE_PER_ITERATION) + CALLOUT_STR_ELLIPSIS; urlToDisplay.setQuery(query); } else if (authority.length > MIN_AUTHORITY_LENGTH_IN_CHARS + CALLOUT_ELLIPSIS_LENGTH) { authority = safeTruncateString(authority, MIN_AUTHORITY_LENGTH_IN_CHARS) + CALLOUT_STR_ELLIPSIS; urlToDisplay.setAuthority(authority); } else if (path.length > CALLOUT_CHARS_TO_TRUNCATE_PER_ITERATION) { path = safeTruncateString(path, path.length - CALLOUT_CHARS_TO_TRUNCATE_PER_ITERATION) + CALLOUT_STR_ELLIPSIS; urlToDisplay.setPath(path); } else if (query.length > CALLOUT_CHARS_TO_TRUNCATE_PER_ITERATION) { query = safeTruncateString(query, query.length - CALLOUT_CHARS_TO_TRUNCATE_PER_ITERATION) + CALLOUT_STR_ELLIPSIS; urlToDisplay.setQuery(query); } element.innerHTML = Encoding.HtmlEncode(urlToDisplay.getDecodedStringForDisplay()); if (element.offsetWidth === lastWidth) { Sys.Debug.assert(false, "Url truncation is not affecting element width. Element must not be setup correctly."); return element.innerHTML; } lastWidth = element.offsetWidth; } return element.innerHTML; } function GetCalloutPolicyTipNotificationElementId(renderCtx) { return GetCalloutElementIDFromRenderCtx(renderCtx) + '-dlpNotificationArea'; } function CalloutRenderDlpNotificationPlaceholder(renderCtx) { SPClientRenderer.AddPostRenderCallback(renderCtx, CalloutPostRenderPolicyTip); return '
'; } function EnsureECBAdapterOnCtx(renderCtx, theCtx) { if (!Boolean(theCtx.ecbAdapter)) { if (typeof SP == "undefined" || typeof SP.Utilities == "undefined" || typeof SP.Utilities.Internal == "undefined" || typeof SP.Utilities.Internal.ECBAdapter == "undefined") return false; theCtx.ecbAdapter = new SP.Utilities.Internal.ECBAdapter(theCtx, function qcbPoll() { renderCtx.qcb.Poll(); }, "qcbPoll"); } return true; } function EnsureEcbAdapterCommandsStateInitialized(renderCtx) { IsECBCommandEnabled("ViewProperties", renderCtx); } function IsECBCommandEnabled(commandId, renderCtx) { if (typeof GetListContextFromContextNumber == "undefined") { return false; } var ecbCommandEnabledCurrentCtx = GetListContextFromContextNumber(renderCtx.ctxId); if (!Boolean(ecbCommandEnabledCurrentCtx)) { return false; } if (!EnsureECBAdapterOnCtx(renderCtx, ecbCommandEnabledCurrentCtx)) { return false; } return ecbCommandEnabledCurrentCtx.ecbAdapter.canHandleECBCommand(commandId); } function ExecuteECBCommand(commandId, renderCtx) { SP.SOD.executeFunc("core.js", "GetListContextFromContextNumber", function() { var ecbCommandEnabledCurrentCtx = GetListContextFromContextNumber(renderCtx.ctxId); if (!Boolean(ecbCommandEnabledCurrentCtx)) { WriteDebugLog("DocLibQCB_ExecECBCmdNoCtx", true, "Could not load a list context for the list when attempting to execute a command"); return; } SP.SOD.executeFunc("sp.core.js", "SP.Utilities.Internal.ECBAdapter", function() { EnsureECBAdapterOnCtx(renderCtx, ecbCommandEnabledCurrentCtx); if (!ecbCommandEnabledCurrentCtx.ecbAdapter.executeECBCommand(commandId)) { WriteDebugLog("DocLibQCB_ExecECBCmdFailed", true, "Execution of ECB command " + commandId + " failed."); return; } }); }); } function _registerOnItemSelectionChangedHandlerForQCB(renderCtx) { ExecuteOrDelayUntilScriptLoaded(function() { var qcbCtx = GetListContextFromContextNumber(renderCtx.ctxId); if (!Boolean(qcbCtx)) return; RegisterOnItemSelectionChangedHandler(qcbCtx, "qcbOnRefreshCommandUI" + renderCtx.wpq, function() { renderCtx.qcb.Poll(); }); }, "core.js"); } function _unregisterOnItemSelectionChangedHandlerForQCB(renderCtx) { ExecuteOrDelayUntilScriptLoaded(function() { var qcbCtx = GetListContextFromContextNumber(renderCtx.ctxId); if (!Boolean(qcbCtx)) return; UnregisterOnItemSelectionChangedHandler(qcbCtx, "qcbOnRefreshCommandUI" + renderCtx.wpq); }, "core.js"); } var MountPointSiteIdFieldName; var MountPointWebIdFieldName; var MountPointItemUniqueIdFieldName; function IsMountPoint(listItem) { return Flighting.VariantConfiguration.IsExpFeatureClientEnabled(134) && (Boolean(listItem) && Boolean(listItem[MountPointSiteIdFieldName]) && Boolean(listItem[MountPointWebIdFieldName]) && Boolean(listItem[MountPointItemUniqueIdFieldName])); } function InMountPoint(renderCtx) { return Boolean(renderCtx.RealHttpRoot); } function IsCurrentItemMountPoint(renderCtx) { return Boolean(renderCtx) && Boolean(renderCtx.CurrentItem) && IsMountPoint(renderCtx.CurrentItem); } function IsSelectedItemMountPoint(renderCtx) { if (Flighting.VariantConfiguration.IsExpFeatureClientEnabled(134)) { var ctxT = Boolean(renderCtx) ? renderCtx : GetCurrentCtx(); if (ctxT == null || typeof ctxT.dictSel == "undefined" || ctxT.CurrentSelectedItems != 1) return false; for (var key in ctxT.dictSel) { var listItemId = (key.split(","))[1]; if (Boolean(listItemId)) { var listData = ctxT.ListData.Row; if (Boolean(listData)) { for (var i = 0; i < listData.length; i++) { var listItem = listData[i]; if (listItem["ID"] == listItemId) { return IsMountPoint(listItem); } } } } } } return false; } var MountPointInfo; function RenderMountPointLink(renderCtx, ret, content, listItem, listSchema) { var mpInfo = MountPointInfo.createByListItem(listItem, renderCtx); ret.push(""); } else { ret.push(listSchema.PagePath); ret.push("?"); ret.push(mpInfo.getMountPointUrl()); if (Flighting.VariantConfiguration.IsExpFeatureClientEnabled(169)) ret.push("\" aria-label=\"" + Encoding.HtmlEncode(Strings.STS.L_FieldType_SharedFolder) + "\">"); else ret.push("\">"); } ret.push(Encoding.HtmlEncode(content)); ret.push(""); } function EnableCreateMountPointIfNeeded(renderCtx) { var uri = new URI(ajaxNavigate.get_href()); var mountSiteId = uri.getQueryParameter("MountSiteId"); var mountWebId = uri.getQueryParameter("MountWebId"); var mountItemUniqueId = uri.getQueryParameter("MountItemUniqueId"); var mountItemTitle = uri.getQueryParameter("MountItemTitle"); if (Boolean(mountSiteId) && Boolean(mountWebId) && Boolean(mountItemUniqueId) && Boolean(mountItemTitle)) { var createMountPointFunc = createOneTimeCallback(function(renderContext) { EnsureScriptParams('MountPoint.js', 'ConfirmCreateMountPoint', mountItemTitle, mountSiteId, mountWebId, mountItemUniqueId, renderCtx.listName, renderCtx.ListSchema.PagePath); }); AddPostRenderCallback(renderCtx, createMountPointFunc); } } function IsListItemFolder(listItem) { return Boolean(listItem) && listItem.FSObjType == "1" && (!Boolean(listItem["HTML_x0020_File_x0020_Type"]) || listItem["HTML_x0020_File_x0020_Type"].indexOf("OneNote.Notebook") == -1); } var ShortcutLinkTargetUrlFieldName; var ShortcutLinkSiteIdFieldName; var ShortcutLinkWebIdFieldName; var ShortcutLinkUniqueIdFieldName; function IsShortcutLink(listItem) { return Boolean(listItem) && (listItem["File_x0020_Type"] == "url" || listItem["File_x0020_Type"] == "website"); } function RetrieveShortcutLink(fileUrl) { if (window.XMLHttpRequest != null) { var strUrl = _spPageContextInfo["webAbsoluteUrl"] + "/_api/SP.Utilities.ShortcutLink.GetShortcutLink('" + URI_Encoding.encodeURIComponent(fileUrl) + "')"; var req = new XMLHttpRequest(); req.open("GET", strUrl, true); req.setRequestHeader("Content-Type", "application/json"); req.setRequestHeader("Accept", "application/json"); req.onreadystatechange = function() { if (req.readyState != 4 || req.status != 200) return; var data = JSON.parse(req.responseText); var element = document.getElementById("shortcut_" + fileUrl); if (element != null) { element.href = data.url; element.title = data.url; } }; req.send(null); } } function GenerateHref(targetUrl, siteId, webId, uniqueId) { var targetHref = ""; var query = "?"; if (Boolean(targetUrl)) { var queryIndex = targetUrl.indexOf("?"); if (queryIndex != -1) { query = targetUrl.substring(queryIndex); } } if (Boolean(uniqueId) && Boolean(webId) && Boolean(siteId)) { targetHref = _spPageContextInfo["webAbsoluteUrl"] + "/_layouts/15/" + "ShortcutLink.aspx"; targetHref += query; targetHref += "&siteid=" + URI_Encoding.encodeURIComponent(siteId); targetHref += "&webid=" + URI_Encoding.encodeURIComponent(webId); targetHref += "&uniqueid=" + URI_Encoding.encodeURIComponent(uniqueId); } else if (Boolean(targetUrl)) { targetHref = targetUrl; } return targetHref; } function RenderShortcutHrefStart(renderCtx, ret, content, listItem, listSchema, triggerRetrieve) { var uniqueId = listItem[ShortcutLinkUniqueIdFieldName]; var webId = listItem[ShortcutLinkWebIdFieldName]; var siteId = listItem[ShortcutLinkSiteIdFieldName]; var targetUrl = listItem[ShortcutLinkTargetUrlFieldName]; var targetHref = GenerateHref(targetUrl, siteId, webId, uniqueId); ret.push(""); } function RenderShortcutLink(renderCtx, ret, content, listItem, listSchema) { RenderShortcutHrefStart(renderCtx, ret, content, listItem, listSchema, true); ret.push(Encoding.HtmlEncode(content)); ret.push(""); } function RenderShortcutLinkIcon(renderCtx, ret, content, listItem, listSchema) { RenderShortcutHrefStart(renderCtx, ret, content, listItem, listSchema, false); ret.push("\"");"); ret.push(""); } function SaveCurrentContextInfo(renderCtx) { var ctxId = "ctx" + renderCtx.ctxId; window[ctxId] = renderCtx; if (Boolean(g_ctxDict)) { g_ctxDict[ctxId] = renderCtx; } if (Boolean(g_ViewIdToViewCounterMap) && Boolean(renderCtx.view)) { g_ViewIdToViewCounterMap[renderCtx.view] = renderCtx.ctxId; } } function EnableHeroButton(renderCtx) { if (!Boolean(renderCtx.DisableHeroButton)) { window['heroButtonWebPart' + renderCtx.wpq] = true; } } function SetupDragDrop(renderCtx) { var registerDragDrop = function() { SetDocItemDragDrop(renderCtx); }; EnsureScriptFunc('DragDrop.js', 'registerDragUpload', registerDragDrop); } function _canDragUploadFile(renderCtx) { var listTemplate = renderCtx.ListTemplateType; var canDragUpload = true; if (typeof g_uploadType != 'undefined' && (g_uploadType == UploadType.ACTIVEXNA || g_uploadType == UploadType.NOT_SUPPORTED)) { canDragUpload = false; } return canDragUpload && !(listTemplate == 119 || listTemplate == 123); } function AjaxNavAddNavigate(callback) { Nav.ajaxNavigate.add_navigate(callback); } function GetInplviewHash(webPartId) { return Nav.ajaxNavigate.getParam("InplviewHash" + webPartId); } function SupportsFileUpload() { return true; } function RenderEasyUploadInputFileElement(renderCtx) { var ret = []; ret.push('"); return ret.join(''); } function IsEasyUploadEnabled(renderCtx) { return Boolean(renderCtx) && !renderCtx.inGridMode && renderCtx.ListTemplateType == 700 && typeof FormData != 'undefined' && Flighting.VariantConfiguration.IsExpFeatureClientEnabled(172); } function IsInIframe() { try { return window.self !== window.top; } catch (e) { return true; } } function RenderProjectTaskListEditMode(renderCtx, postRenderFunc) { if (renderCtx.ListTemplateType == 171 && _spPageContextInfo.webTemplate == '6115') { if (Boolean(renderCtx.bInitialRender) && (renderCtx.ListData.LastRow == null || renderCtx.ListData.LastRow == 0)) { renderCtx.inGridMode = false; postRenderFunc = function() { EnsureScriptParams('inplview', 'InitGridFromView', renderCtx.view); }; AddPostRenderCallbackUnique(renderCtx, postRenderFunc); } } } function RenderGroupListEditMode(renderCtx, postRenderFunc) { if (renderCtx.SiteTemplateId == 64 && _spPageContextInfo.webTemplate == '64') { var curUrl = new URI(ajaxNavigate.get_href()); var initQuery = curUrl.getQueryParameter("ShowInGrid"); if (!ctx.inGridMode && Boolean(initQuery) && initQuery != "false" && Boolean(renderCtx.bInitialRender) && (renderCtx.ListData.LastRow == null || renderCtx.ListData.LastRow == 0)) { renderCtx.inGridMode = true; postRenderFunc = function() { EnsureScriptParams('inplview', 'InitGridFromView', renderCtx.view); }; AddPostRenderCallbackUnique(renderCtx, postRenderFunc); } } } function WriteDebugLog(tag, isInteresting, message) { SP.DebugLogger.Write(tag, isInteresting ? SP.DebugLogger.LoggingLevel.Interesting : SP.DebugLogger.LoggingLevel.Boring, message); } function WriteEngagementLog(tag, dictProperties) { SP.QoS.WriteUserEngagement(tag, dictProperties); } function WriteDocEngagementLog(teamSiteTag, oneDriveTag, dictProperties) { _WriteDocEngagement(teamSiteTag, oneDriveTag, dictProperties); } function WriteStart(tag, dictProperties) { SP.QoS.WriteStart(tag, dictProperties); } function WriteSuccess(tag, dictProperties, logType, duration) { SP.QoS.WriteSuccess(tag, dictProperties, logType, duration); } function WriteFailure(tag, dictProperties, logType, duration) { SP.QoS.WriteFailure(tag, dictProperties, logType, duration); } function WriteStartDiagnostic(tag, dictProperties) { SP.QoS.WriteStart(tag, dictProperties, SP.QoS.LogType.Diagnostic, null); } function WriteSuccessDiagnostic(tag, dictProperties) { SP.QoS.WriteSuccess(tag, dictProperties, SP.QoS.LogType.Diagnostic, null); } function WriteFailureDiagnostic(tag, dictProperties) { SP.QoS.WriteFailure(tag, dictProperties, SP.QoS.LogType.Diagnostic, null); } function WriteListViewSuccessLog(renderCtx) { if (typeof performance != "undefined" && typeof performance.timing != "undefined") { var listId = renderCtx.ListTemplateType > 0 ? renderCtx.ListTemplateType * 10000 : 0; if (typeof renderCtx.BaseViewID == "number") listId += renderCtx.BaseViewID; if (window["groupContextData"] != null) listId = listId * 10 + 1; var endTime = (new Date()).getTime(); var controlId = 'ListView'; var startTime = 0; var usingAppCache = false; var folderNav = false; if (Boolean(renderCtx.startTime)) { LogRUMExtendedAction('InplviewTime', listId, null, endTime - renderCtx.startTime, 2); startTime = Number(renderCtx.startTime); folderNav = true; renderCtx.startTime = null; } else if (Flighting.VariantConfiguration.IsExpFeatureClientEnabled(192) || Flighting.VariantConfiguration.IsExpFeatureClientEnabled(511)) { var actionName = 'ListRendered'; var appCache = window.applicationCache; if (Boolean(appCache) && appCache.UNCACHED != appCache.status) { actionName += "_FromAppCache"; usingAppCache = true; WriteSuccessDiagnostic(actionName); } LogRUMExtendedAction(actionName, listId, null, endTime, 2); } else { LogRUMExtendedAction('ListRendered', listId, null, endTime, 2); } EnsureScriptFunc("sp.core.js", "SP.SlapiInternal", function() { var perfLogger = IsNullOrUndefined(PerformanceLogger) ? null : PerformanceLogger.GetLogger(); if (!IsNullOrUndefined(perfLogger)) { perfLogger.WriteScenarioId(String(listId)); perfLogger.WriteAppCache(usingAppCache); perfLogger.WriteFolderNav(folderNav); if (typeof PerformanceLogger.ControlPerformanceData == "function") { perfLogger.AddExpectedControl(controlId); var controlPerformanceData = new PerformanceLogger.ControlPerformanceData(controlId, startTime, Number(endTime), perfLogger.ComputeControlRenderTime, perfLogger.CheckControlTimeRequiredDataAvailable); perfLogger.WriteControlPerformanceData(controlPerformanceData); } } }); if (typeof g_MinimalDownload == "undefined" || !g_MinimalDownload) { if (typeof SP.Performance.UploadNonMDSPageLoadTime != "undefined") SP.Performance.UploadNonMDSPageLoadTime(renderCtx.ListTemplateType, endTime); } } if (typeof SP.ReadyToUploadLogs != "undefined") SP.ReadyToUploadLogs(); } function _EnsureJSClassOrNamespace(nsStr, isNamespace) { var parts = nsStr.split("."); var prevNS; for (var i = 0, pLen = parts.length; i < pLen; i++) { var ns = parts[i]; if (typeof prevNS == "undefined") { prevNS = window; } if (typeof prevNS[ns] == "undefined") { prevNS[ns] = new Object(); } prevNS = prevNS[ns]; if (isNamespace) { prevNS.__namespace = true; } } } function _EnsureJSNamespace(nsStr) { _EnsureJSClassOrNamespace(nsStr, true); } function _EnsureJSClass(nsStr) { _EnsureJSClassOrNamespace(nsStr, false); } var g_prefetch; var g_ribbonImagePrefetch; var AriaLogger; var BaseLogger; var CacheLogger; function CacheLogger_module_def() { CacheLogger.DefaultUploader = function(uploadFunc) { var uploadTimer = null; var pageLoaded = false; var clearTimer = function() { if (null != uploadTimer) { clearTimeout(Number(uploadTimer)); uploadTimer = null; } }; var upload = function() { clearTimer(); uploadFunc(); }; this.CanUpload = function() { return pageLoaded; }; this.OnLog = function() { if (null == uploadTimer) { uploadTimer = setTimeout(upload, 5000); } }; this.OnUpload = function() { clearTimer(); }; DOM.AddEventHandler(window, "onload", function() { pageLoaded = true; upload(); }); }; var ariaLogger = null; CacheLogger.Logger = function(storagePrefix, logger, uploaderConstructor) { if (!Boolean(storagePrefix) || storagePrefix.length == 0) storagePrefix = "CacheLogger"; if (!Boolean(logger)) logger = BaseLogger.GetLogger(); if (!Boolean(uploaderConstructor)) uploaderConstructor = CacheLogger.DefaultUploader; var storageSize = -1; var SessionID = "sessionID"; var getStorageSize = function(size) { if (-1 == size) { var retSize = BrowserStorage.session.getItem(storagePrefix + "size"); if (!Boolean(retSize)) { retSize = BrowserStorage.session.getItem(storagePrefix + "Size"); } if (!Boolean(retSize)) retSize = "0"; return parseInt(retSize, 10); } return size; }; var generateGuid = function() { try { var rStr = function(len) { var ret = ""; do { ret += ((Math.random()).toString(16)).substr(2, len - ret.length); } while (ret.length < len); return ret; }; return rStr(8) + "-" + rStr(4) + "-4" + rStr(3) + "-" + rStr(4) + "-" + rStr(12); } catch (e) { return ""; } }; var ensureSessionID = function() { if (typeof window[SessionID] == "undefined") { if (typeof g_correlationId == "string" && g_correlationId != null) { window[SessionID] = g_correlationId; } else { window[SessionID] = generateGuid(); } } }; var ensureAriaLogger = function(ev) { if (!Boolean(ariaLogger) || typeof ariaLogger.isInitialized != "function") { EnsureScriptFunc("ariaSDK.js", "AWTLogManager", function() { ariaLogger = new AriaLogger.Logger(); if (Boolean(ev) && Boolean(ariaLogger) && ariaLogger.isInitialized()) { ariaLogger.safeLogEvent(ev); } }); } }; var uploadData = function() { if (!uploader.CanUpload()) return; storageSize = getStorageSize(storageSize); var haveData = false; if (!(window["OffSwitch"] == null || OffSwitch.IsActive("D6FA4689-03B2-493E-A113-C03B78D9DA53"))) { if (!Boolean(ariaLogger) || typeof ariaLogger.isInitialized != "function") { ensureAriaLogger(); } } for (var i = 0; i < storageSize; i++) { var dataItemStr = BrowserStorage.session.getItem(storagePrefix + i.toString()); try { var dataItem = JSON.parse(dataItemStr); logger.WriteLog(String(dataItem.name), dataItem.props); haveData = true; if (!(window["OffSwitch"] == null || OffSwitch.IsActive("D6FA4689-03B2-493E-A113-C03B78D9DA53"))) { var ev = setAriaEvent(String(dataItem.name), dataItem.props); if (Boolean(ariaLogger) && typeof ariaLogger.isInitialized == "function") { ariaLogger.safeLogEvent(ev); } else { ensureAriaLogger(ev); } } } catch (e) { continue; } } if (!haveData) return; if (!(window["OffSwitch"] == null || OffSwitch.IsActive("D6FA4689-03B2-493E-A113-C03B78D9DA53"))) { ensureSessionID(); } else { if (typeof window[SessionID] == "undefined") { if (typeof g_correlationId == "string" && g_correlationId != null) { window[SessionID] = g_correlationId; } else { window[SessionID] = generateGuid(); } } } logger.SetCorrelationId(window[SessionID]); logger.UploadData(); storageSize = 0; BrowserStorage.session.removeItem(storagePrefix + "Size"); BrowserStorage.session.setItem(storagePrefix + "size", 0); uploader.OnUpload(); }; var uploader = new uploaderConstructor(uploadData); CacheLogger.GenerateGuid = function() { return generateGuid(); }; this.WriteLog = function(eventName, dictProperties, immediate) { if (!Boolean(eventName) || !Boolean(dictProperties)) { return; } if (!Boolean(dictProperties['ClientTime'])) { dictProperties['ClientTime'] = (new Date()).valueOf(); } var logEntry = { name: eventName, props: dictProperties }; storageSize = getStorageSize(storageSize); if (storageSize >= 100) { return; } var serializedObject = ""; try { serializedObject = JSON.stringify(logEntry); } catch (e) { return; } BrowserStorage.session.setItem(storagePrefix + storageSize.toString(), serializedObject); storageSize++; BrowserStorage.session.setItem(storagePrefix + "size", storageSize); uploader.OnLog(); if (Boolean(immediate)) { setTimeout(uploadData, 0); } }; function setAriaEvent(evName, props) { ensureSessionID(); var ev = { "eventName": evName, "sessionId": window[SessionID], "correlationVector": window[SessionID], "data": props }; return ev; } }; var defaultLogger = null; CacheLogger.GetLogger = function() { if (null == defaultLogger) defaultLogger = new CacheLogger.Logger(); return defaultLogger; }; } var DebugLogger; function DebugLogger_module_def() { var debugStreamId = 'ReliabilityLog'; var maxColumnSize = 5000; var defaultNumberOfBoringLogsToSend = 25; DebugLogger.Logger = function(numberOfBoringLogsToSend, cacheLogger) { if (!Boolean(cacheLogger)) cacheLogger = CacheLogger.GetLogger(); var logCache = new MRUCache(numberOfBoringLogsToSend); this.Write = function(tag, level, message, miscData) { if (!Boolean(tag) || tag.length == 0) return; if (!Boolean(message)) message = ""; if (!Boolean(miscData)) miscData = ""; if (typeof message.stack == "string") { message = message.stack; } else if (typeof message.message == "string") { message = message.message; } else { message = getCsomDebugInfo(message); } if (tag.length > maxColumnSize || Number(message.length) > maxColumnSize || miscData.length > maxColumnSize) { tag = tag.substring(0, maxColumnSize); message = message.substring(0, maxColumnSize); miscData = message.substring(0, maxColumnSize); } var log = { Tag: tag, Level: level, Message: message, Misc: miscData, UserAgent: navigator.userAgent }; if (this.LoggingLevel.Boring == level) { logCache.Push(log); return; } var item; while (Boolean(item = logCache.GetOldest())) { cacheLogger.WriteLog(debugStreamId, item); } cacheLogger.WriteLog(debugStreamId, log, true); }; this.LoggingLevel = { Boring: 0, Interesting: 1 }; var csomErrorFunctions = [{ func: "get_errorCode", name: "ErrorCode" }, { func: "get_errorTraceCorrelationId", name: "CorrelationId" }, { func: "get_errorTypeName", name: "ErrorType" }, { func: "get_message", name: "Message" }, { func: "get_stackTrace", name: "StackTrace" }]; var getCsomDebugInfo = function(args) { var info = {}; var hasCsomData = false; for (var i = 0; i < csomErrorFunctions.length; i++) { if (typeof args[csomErrorFunctions[i].func] == "function") { var result = args[csomErrorFunctions[i].func].call(args); if (result != null && result != "") { info[csomErrorFunctions[i].name] = result; hasCsomData = true; } } } if (hasCsomData) return JSON.stringify(info); else return String(args); }; }; var defaultLogger = null; DebugLogger.GetLogger = function() { if (null == defaultLogger) defaultLogger = new DebugLogger.Logger(defaultNumberOfBoringLogsToSend); return defaultLogger; }; var MRUCache = function(size) { var _size = size; var _length = 0; var _head = -1; var _tail = -1; var _arr = new Array(size); this.Push = function(item) { _head++; if (_head == _size) _head = 0; if (_tail == -1 || _head == _tail) { _tail++; if (_tail == _size) _tail = 0; } _arr[_head] = item; _length++; if (_length > size) _length = size; }; this.GetOldest = function() { if (_length == 0) return null; var retVal = _arr[_tail]; _length--; if (_length < 0) _length = 0; if (_length > 0) { _tail++; if (_tail == _size) _tail = 0; } if (_length == 0) { _tail = -1; _head = -1; } return retVal; }; }; } var QoSLogger; function QoSLogger_module_def() { var userEngagementStreamId = 'UserEngagement'; QoSLogger.Logger = function(cacheLogger, debugLogger) { if (!Boolean(cacheLogger)) cacheLogger = CacheLogger.GetLogger(); var that = this; this.LogType = { Engagement: 0, Diagnostic: 1 }; var writeTag = function(tag, dictProperties, logType, duration) { var serializedObject = ""; if (Boolean(dictProperties)) { try { serializedObject = JSON.stringify(dictProperties); } catch (e) { } } if (!Boolean(logType)) logType = that.LogType.Engagement; var log = { EngagementName: tag, Properties: serializedObject, Duration: duration, LogType: logType }; cacheLogger.WriteLog(userEngagementStreamId, log); }; this.WriteStart = function(tag, dictProperties, logType, duration) { writeTag(tag, dictProperties, logType, duration); }; this.WriteSuccess = function(tag, dictProperties, logType, duration) { writeTag(tag, dictProperties, logType, duration); }; this.WriteFailure = function(tag, dictProperties, logType, duration, error) { writeTag(tag, dictProperties, logType, duration); if (Boolean(debugLogger) && Boolean(error)) { debugLogger.Write(tag, debugLogger.LoggingLevel.Interesting, error); } }; this.WriteUserEngagement = function(tag, dictProperties) { writeTag(tag, dictProperties, this.LogType.Engagement, null); }; this.ScenarioMonitor = function(scenarioName, startTag, successTag, unexpectedFailureTag, noResultTag, startProperties, logType) { var hadSuccess = false; var successProperties = null; var expectedFailureProperties = null; var unexpectedFailureProperties = null; var expectedFailureError = null; var unexpectedFailureError = null; var hadExpectedFailure = false; var hadUnexpectedFailure = false; var expectedFailureTag; var startTime; var disposed = false; var logStart = function() { that.WriteStart(startTag, startProperties, logType, null); }; var logSuccess = function(duration) { that.WriteSuccess(successTag, successProperties, logType, duration); }; var logExpectedFailure = function(duration) { that.WriteFailure(expectedFailureTag, expectedFailureProperties, logType, duration, expectedFailureError); }; var logUnexpectedFailure = function(duration) { that.WriteFailure(unexpectedFailureTag, unexpectedFailureProperties, logType, duration, unexpectedFailureError); }; var logNoResult = function(duration) { that.WriteFailure(noResultTag, null, logType, duration); }; this.Success = function(properties) { if (hadSuccess) return; hadSuccess = true; successProperties = properties; }; this.ExpectedFailure = function(tag, properties, error) { if (hadExpectedFailure) return; hadExpectedFailure = true; expectedFailureProperties = properties; expectedFailureError = error; expectedFailureTag = tag; }; this.UnexpectedFailure = function(tag, properties, error) { if (hadUnexpectedFailure) return; hadUnexpectedFailure = true; unexpectedFailureProperties = properties; unexpectedFailureError = error; if (null != tag) unexpectedFailureTag = tag; }; var disposeEventFunc = function(evt) { disposeHelper(); }; this.Dispose = function() { disposeHelper(); }; function disposeHelper() { if (disposed) return; disposed = true; var duration = Number(new Date()) - startTime; if (hadExpectedFailure) { logExpectedFailure(duration); } else if (hadUnexpectedFailure) { logUnexpectedFailure(duration); } else if (hadSuccess) { logSuccess(duration); } else { logNoResult(duration); } DOM.RemoveEventHandler(window, "onbeforeunload", disposeEventFunc); } logStart(); DOM.AddEventHandler(window, "onbeforeunload", disposeEventFunc); startTime = Number(new Date()); }; this.ExecuteMonitoredCode = function(scenarioName, startTag, successTag, unexpectedFailureTag, noResultTag, functionToExecute, properties, logType) { var monitor = new that.ScenarioMonitor(scenarioName, startTag, successTag, unexpectedFailureTag, noResultTag, properties, logType); try { functionToExecute(monitor); monitor.Success(properties); } catch (e) { monitor.UnexpectedFailure(unexpectedFailureTag, properties, e); throw e; } finally { monitor.Dispose(); } }; this.ExecuteMonitoredAsync = function(scenarioName, startTag, successTag, unexpectedFailureTag, noResultTag, functionToExecute, onSuccess, onFailure, properties, logType) { var monitor = new that.ScenarioMonitor(scenarioName, startTag, successTag, unexpectedFailureTag, noResultTag, properties, logType); var onSuccessMonitored = function(sender, args) { try { onSuccess(sender, args, monitor); monitor.Success(properties); } catch (e) { monitor.UnexpectedFailure(unexpectedFailureTag, properties, e); throw e; } finally { monitor.Dispose(); } }; var onFailureMonitored = function(sender, args) { try { onFailure(sender, args, monitor); } catch (e) { throw e; } finally { monitor.UnexpectedFailure(unexpectedFailureTag, properties, args); monitor.Dispose(); } }; try { functionToExecute(onSuccessMonitored, onFailureMonitored); } catch (e) { monitor.UnexpectedFailure(unexpectedFailureTag, properties, e); monitor.Dispose(); throw e; } }; }; var defaultLogger = null; QoSLogger.GetLogger = function() { if (null == defaultLogger) defaultLogger = new QoSLogger.Logger(); return defaultLogger; }; } var RUMDelta; var PerformanceLogger; function PerformanceLogger_module_def() { PerformanceLogger.ControlPerformanceData = function(_controlId, _startTime, _endTime, _RenderTimeCalculator, _RenderTimeRequiredDataChecker) { this.ControlId = _controlId; this.StartTime = _startTime; this.EndTime = _endTime; this.RenderTimeCalculator = _RenderTimeCalculator; this.RenderTimeRequiredDataChecker = _RenderTimeRequiredDataChecker; }; PerformanceLogger.ControlPerformanceData.prototype.RenderTime = 0; PerformanceLogger.PerformanceDataState = { Incomplete: 1, ReadyToUpload: 2, Uploaded: 3, TimeOut: 4 }; var PerformanceDataState = PerformanceLogger.PerformanceDataState; PerformanceLogger.Logger = function(cacheLogger) { this.PerformanceData = null; var controls = new Array(0); var expectedControls = new Array(0); var dataState = PerformanceDataState.Incomplete; var perfDataTimer = null; var checkInterval = 100; var errorTimeOut = 30000; var keyMetrics = ['ServerCorrelationId', 'ServerRequestDuration', 'EUPL', 'ServerUrl', 'ScenarioId', 'PageTransitionType', 'AppCache', 'FolderNav', 'W3cNavigationStart']; var dataStartTime = Number((new Date()).getTime()); var isServerCorrelationIdCollected = false; var isPageTransitionCollected = false; var isServerLatencyCollected = false; var isAppCacheCollected = false; var isFolderNavCollected = false; var isEUPLCollected = false; var isMDSTimingCollected = false; var isW3cTimingCollected = false; var isW3cResourceTimingCollected = false; var isScenarioIdCollected = false; var isServerUrlCollected = false; var euplBreakDown = {}; var that = this; if (IsNullOrUndefined(cacheLogger)) { cacheLogger = CacheLogger.GetLogger(); } this.GetPerformanceData = function() { if (!IsNullOrUndefined(that.PerformanceData)) { return that.PerformanceData; } EnsureScriptFunc("sp.core.js", "SP.SlapiInternal", function() { if (IsNullOrUndefined(that.PerformanceData)) { if (typeof SP === "object" && typeof SP.SlapiInternal === "object") { var slapiInternal = SP.SlapiInternal; that.PerformanceData = new slapiInternal.RUMOne(); } } }); return that.PerformanceData; }; this.GetPerformanceData(); function SetPerfDataTimer() { perfDataTimer = setTimeout(LoopForDataCompleteness, checkInterval); } function ClearPerfDataTimer() { if (!IsNullOrUndefined(perfDataTimer)) { clearTimeout(perfDataTimer); perfDataTimer = null; } } function LoopForDataCompleteness() { ClearPerfDataTimer(); if (dataState === PerformanceDataState.Uploaded || dataState === PerformanceDataState.TimeOut) { return; } var collected = true; var missedKeyMetrics = new Array(0); for (var i = 0; i < keyMetrics.length; i++) { var keyMetricValue = that.GetPerformanceDataPropertyValue(keyMetrics[i]); if (IsNullOrUndefined(keyMetricValue)) { collected = false; missedKeyMetrics.push(keyMetrics[i]); } } dataState = collected ? PerformanceDataState.ReadyToUpload : PerformanceDataState.Incomplete; if (dataState === PerformanceDataState.Incomplete) { if (!(window["OffSwitch"] == null || OffSwitch.IsActive("5DB2EE36-96C7-495F-877E-79DCAFC6ED72"))) { that.WriteServerCorrelationId(); WriteServerUrl(); that.LogPerformanceData('EUPLBreakdown', JSON.stringify(euplBreakDown)); if (ReadyToComputeEUPL()) { SetEUPLAndControlData(); } } if (Number((new Date()).getTime()) - Number(dataStartTime) > errorTimeOut) { dataState = PerformanceDataState.TimeOut; UploadPerfData(); EnsureScriptFunc("sp.core.js", "SP.SlapiInternal", function() { ReportErrors('TimeOut', 'Did not get key perf metrics in ' + String(errorTimeOut) + ' milliseconds. Missed metrics: ' + missedKeyMetrics.join() + '.'); }); } else { if (window["OffSwitch"] == null || OffSwitch.IsActive("5DB2EE36-96C7-495F-877E-79DCAFC6ED72")) { that.WriteServerCorrelationId(); WriteServerUrl(); that.LogPerformanceData('EUPLBreakdown', JSON.stringify(euplBreakDown)); if (ReadyToComputeEUPL()) { SetEUPLAndControlData(); } } } } else { try { UploadPerfData(); } catch (e) { (function(errorText) { if (typeof console != "undefined" && Boolean(console) && typeof console.error == "function") { console.error(String(errorText)); } })("PerformanceLogger: error writing RUMOne data."); } dataState = PerformanceDataState.Uploaded; } SetPerfDataTimer(); } ; SetPerfDataTimer(); function GetReadableDataState(_dataState) { if (IsNullOrUndefined(PerformanceDataState)) { return 'NaN'; } for (var key in PerformanceDataState) { if (_dataState === PerformanceDataState[key]) { return key; } } return 'NaN'; } ; this.ResetPerformanceLogger = function() { dataStartTime = (new Date()).getTime(); dataState = PerformanceDataState.Incomplete; isServerCorrelationIdCollected = false; isPageTransitionCollected = false; isServerLatencyCollected = false; isAppCacheCollected = false; isFolderNavCollected = false; isEUPLCollected = false; isMDSTimingCollected = false; isW3cTimingCollected = false; isW3cResourceTimingCollected = false; isScenarioIdCollected = false; isServerUrlCollected = false; controls = new Array(0); expectedControls = new Array(0); that.PerformanceData = null; that.GetPerformanceData(); ClearPerfDataTimer(); SetPerfDataTimer(); euplBreakDown = {}; }; this.LogPerformanceData = function(key, value) { if (IsNullOrUndefined(key)) { return; } EnsureScriptFunc("sp.core.js", "SP.SlapiInternal", function() { that.GetPerformanceData(); if (!VerifyPropertyMatchingSchema(key)) { return; } that.PerformanceData[key] = value; CheckLateReporting({ Name: key, Value: value }); }); }; this.GetPerformanceDataPropertyValue = function(key) { if (IsNullOrUndefined(that.PerformanceData) || IsNullOrUndefined(key) || !VerifyPropertyMatchingSchema(key)) { return null; } return that.PerformanceData[key]; }; function VerifyPropertyMatchingSchema(propertyName) { var properties = GetRUMOnePropertyNames(that.PerformanceData); return (properties.join()).indexOf(propertyName) != -1; } ; function GetRUMOnePropertyNames(obj) { var names = new Array(0); var index = 0; if (!IsNullOrUndefined(obj)) { for (var property in obj) { if (obj.hasOwnProperty(property)) { names[index++] = property; } } } return names; } ; this.WriteServerCorrelationId = function(correlationId) { if (isServerCorrelationIdCollected) { return; } if (!IsNullOrUndefined(correlationId)) { that.LogPerformanceData('ServerCorrelationId', correlationId); } else if (typeof g_correlationId === "string" && !IsNullOrUndefined(g_correlationId)) { that.LogPerformanceData('ServerCorrelationId', g_correlationId); isServerCorrelationIdCollected = true; } }; function WriteServerUrl() { if (isServerUrlCollected) { return; } if (!IsNullOrUndefined(that.PerformanceData)) { that.LogPerformanceData('ServerUrl', window.location.href); isServerUrlCollected = true; } } ; this.WriteServerSideLatency = function WriteServerSideLatency(duration, iisLatency) { if (!IsNullOrUndefined(that.PerformanceData) && !isServerLatencyCollected) { if (!IsNullOrUndefined(duration)) { that.LogPerformanceData('ServerRequestDuration', duration); isServerLatencyCollected = true; } if (!IsNullOrUndefined(iisLatency)) { that.LogPerformanceData('IISLatency', iisLatency); } } }; this.WriteControlPerformanceData = function(controlData) { if (IsNullOrUndefined(controlData) || IsNullOrUndefined(controls)) { return; } controls.push(controlData); }; function WriteControlDataToRUMOne(controlData) { if (IsNullOrUndefined(controls) || IsNullOrUndefined(that.PerformanceData) || IsNullOrUndefined(controlData)) { return; } var controlId = controlData.ControlId; var renderTime = controlData.RenderTime; if (IsNullOrUndefined(that.GetPerformanceDataPropertyValue('Control1Id'))) { that.LogPerformanceData('Control1Id', controlId); that.LogPerformanceData('Control1RenderTime', renderTime); return; } if (IsNullOrUndefined(that.GetPerformanceDataPropertyValue('Control2Id'))) { that.LogPerformanceData('Control2Id', controlId); that.LogPerformanceData('Control2RenderTime', renderTime); return; } if (IsNullOrUndefined(that.GetPerformanceDataPropertyValue('Control3Id'))) { that.LogPerformanceData('Control3Id', controlId); that.LogPerformanceData('Control3RenderTime', renderTime); return; } if (IsNullOrUndefined(that.GetPerformanceDataPropertyValue('Control4Id'))) { that.LogPerformanceData('Control4Id', controlId); that.LogPerformanceData('Control4RenderTime', renderTime); return; } } ; function ReadyToComputeEUPL() { var ready = true; if (IsNullOrUndefined(expectedControls) || IsNullOrUndefined(controls) || expectedControls.length === 0 || controls.length === 0) { return false; } for (var index = 0; index < expectedControls.length; index++) { var keyControl = LookUpControls(expectedControls[index], controls); if (IsNullOrUndefined(keyControl) || !keyControl.RenderTimeRequiredDataChecker(that, keyControl)) { ready = false; break; } } return ready; } ; function LookUpControls(_controlId, _controls) { if (IsNullOrUndefined(_controlId) || IsNullOrUndefined(_controls)) { return null; } for (var index = 0; index < _controls.length; index++) { if (_controlId === _controls[index].ControlId) { return _controls[index]; } } return null; } ; function SetEUPLAndControlData() { if (isEUPLCollected) { return; } var eupl = 0; if (IsNullOrUndefined(controls) || controls.length === 0) { return; } for (var index = 0; index < controls.length; index++) { var controlData = controls[index]; controlData.RenderTime = controlData.RenderTimeCalculator(that, controlData); WriteControlDataToRUMOne(controlData); if (eupl < controlData.RenderTime) { eupl = controlData.RenderTime; } } that.LogPerformanceData('EUPL', eupl); isEUPLCollected = true; } ; this.WriteAppCache = function(appCache) { if (isAppCacheCollected) { return; } that.LogPerformanceData('AppCache', appCache); isAppCacheCollected = true; }; this.WriteFolderNav = function(folderNav) { if (isFolderNavCollected) { return; } that.LogPerformanceData('FolderNav', folderNav); isFolderNavCollected = true; }; this.WritePageTransitionType = function(pageTransitionType) { if (isPageTransitionCollected) { return; } if (IsNullOrUndefined(pageTransitionType) || pageTransitionType < 0 || pageTransitionType > 4) { return; } that.LogPerformanceData('PageTransitionType', pageTransitionType); isPageTransitionCollected = true; }; this.WriteScenarioId = function(scenarioId, overwrite) { if (isScenarioIdCollected && !overwrite) { return; } if (IsNullOrUndefined(scenarioId)) { return; } that.LogPerformanceData('ScenarioId', scenarioId); isScenarioIdCollected = true; }; this.WriteMDSTiming = function(mdsIndex, timing) { if (isMDSTimingCollected) { return; } var MDSTimingName = ResolveMDSTimingName(mdsIndex); if (!IsNullOrUndefined(MDSTimingName)) { that.LogPerformanceData(MDSTimingName, timing); if (MDSTimingName === 'MDSAnimationEnd') { isMDSTimingCollected = true; } } }; this.CollectW3CPerfTimings = function() { if (isW3cTimingCollected) { return; } var w3cTimeStampNames = ['navigationStart', 'unloadEventStart', 'unloadEventEnd', 'fetchStart', 'redirectStart', 'redirectEnd', 'domainLookupStart', 'domainLookupEnd', 'connectStart', 'secureConnectStart', 'connectEnd', 'requestStart', 'responseStart', 'responseEnd', 'domLoading', 'domComplete', 'loadEventStart', 'loadEventEnd']; var perfTimingObject = GetWindowPerfTimingObject(); if (IsNullOrUndefined(perfTimingObject)) { return; } var values = new Array(w3cTimeStampNames.length); for (var index = 0; index < w3cTimeStampNames.length; index++) { var w3cObject = perfTimingObject[w3cTimeStampNames[index]]; if (IsNullOrUndefined(w3cObject)) { continue; } that.LogPerformanceData(GetW3cTimingName(w3cTimeStampNames[index]), Number(w3cObject)); } isW3cTimingCollected = true; }; this.CollectW3cResourceTimings = function() { var index = 0; if (!isW3cResourceTimingCollected) { var allRequests = GetPerfResourcesTimingObject(false, 0); var iFrames = document.getElementsByTagName("iframe"); for (index = 0; index < iFrames.length; index++) { var iFramePerformance = null; try { iFramePerformance = GetPerfResourcesTimingObject(true, index); } catch (e) { } if (Boolean(iFramePerformance)) { allRequests.concat(iFramePerformance.getEntriesByType("resource")); } } var fromSources = {}; fromSources["SharePoint"] = function(element) { return /\.sharepoint\.com|\.spoppe\.com/i.test(element.name); }; fromSources["CDN"] = function(element) { return /(cdn(ppe)?|static(ppe)?)\.sharepointonline\.com|contentstorage\.osi\.office\.net|\.akamaihd\.net/i.test(element.name); }; fromSources["ThirdParty"] = function(element) { return !fromSources["SharePoint"](element) && !fromSources["CDN"](element); }; var types = {}; types["ASPX"] = function(element) { return /\.aspx/i.test(element.name); }; types["JS"] = function(element) { return /script/i.test(element.initiatorType); }; types["CSS"] = function(element) { return /link|css/i.test(element.initiatorType); }; types["IMG"] = function(element) { return /img/i.test(element.initiatorType); }; var sources = Object.keys(fromSources); for (index = 0; index < sources.length; index++) { var source = sources[index]; var requests = CategorizeResourceRequests(allRequests, { from: fromSources[source], requestType: null }); that.LogPerformanceData(source + "RequestCountTotal", requests.length); var typeKeys = Object.keys(types); for (var typeIndex = 0; typeIndex < typeKeys.length; typeIndex++) { var type = typeKeys[typeIndex]; that.LogPerformanceData(source + "RequestCount" + type, (CategorizeResourceRequests(requests, { from: null, requestType: types[type] })).length); } if (requests.length > 0) { that.LogPerformanceData(source + "RequestDownloadTime", Math.round(requests.reduce(function(sum, currentVal) { return sum + currentVal.duration; }, 0) / requests.length)); var files = JSON.stringify(requests.map(function(timing) { return { name: ((((timing.name.split("/")).map(function(urlToken) { return (urlToken.split("?"))[0]; })).filter(function(urlToken) { return urlToken && urlToken.length > 0; })).slice(-1))[0].replace(/\(.*?\)/g, '()'), startTime: Math.round(timing.startTime), duration: Math.round(timing.duration) }; })); that.LogPerformanceData(source + "RequestNames", files); } } isW3cResourceTimingCollected = true; } }; function CategorizeResourceRequests(requests, categorizer) { var ret = []; for (var index = 0; index < requests.length; index++) { var request = requests[index]; if ((!categorizer.from || categorizer.from(request)) && (!categorizer.requestType || categorizer.requestType(request))) { ret.push(request); } } return ret; } ; function GetW3cTimingName(timingName) { return 'W3c' + (timingName.charAt(0)).toUpperCase() + timingName.slice(1); } ; function GetWindowPerfTimingObject() { var perfObject = window.self["performance"]; if (IsNullOrUndefined(perfObject)) { return null; } var timingObject = perfObject.timing; if (IsNullOrUndefined(timingObject)) { return null; } return timingObject; } ; function GetPerfResourcesTimingObject(biframe, index) { var perfObject = null; try { if (biframe) { var iFrames = document.getElementsByTagName("iframe"); perfObject = iFrames & iFrames.length > index ? iFrames[index].contentWindow["performance"] : null; } else { perfObject = window.self["performance"]; } } catch (e) { } if (IsNullOrUndefined(perfObject)) { return null; } var timingObject = perfObject.getEntriesByType("resource"); if (IsNullOrUndefined(timingObject)) { return null; } return timingObject; } ; function ResolveMDSTimingName(mdsIndex) { switch (mdsIndex) { case 0: return 'MDSDownloadStart'; case 1: case 2: return 'MDSParseDeltaStart'; case 3: return 'MDSParseDeltaEnd'; case 4: return 'MDSGCStart'; case 5: return 'MDSGCEnd'; case 6: case 7: case 8: return 'MDSCSSStart'; case 9: return 'MDSCSSEnd'; case 10: return 'MDSInnerHTMLStart'; case 11: case 12: return 'MDSScriptLoaderStart'; case 13: return 'MDSScriptLoaderEnd'; case 14: return 'MDSAnimationStart'; case 15: return 'MDSAnimationEnd'; case 16: return 'MDSParallelDownloadStart'; case 17: return 'MDSParallelDownloadEnd'; default: return null; } } ; function CheckLateReporting(metric) { if (dataState === PerformanceDataState.Uploaded || dataState === PerformanceDataState.TimeOut) { var reason = "Late Reported Data"; var message = JSON.stringify(metric); EnsureScriptFunc("sp.core.js", "SP.SlapiInternal", function() { ReportErrors(reason, message); }); } } ; function UploadPerfData() { if (IsNullOrUndefined(that.PerformanceData) || dataState != PerformanceDataState.ReadyToUpload && dataState != PerformanceDataState.TimeOut) { return; } if (IsNullOrUndefined(cacheLogger)) { return; } cacheLogger.WriteLog('RUMOne', that.GetPerformanceData(), true); } ; function ReportErrors(reason, message) { var slapiInternal = SP.SlapiInternal; var errorObj = new slapiInternal.RUMOneErrors(); errorObj.Reason = reason; errorObj.Message = message; if (IsNullOrUndefined(cacheLogger)) { return; } cacheLogger.WriteLog('RUMOneErrors', errorObj); } ; this.AddExpectedControl = function(control) { if (expectedControls.indexOf && expectedControls.indexOf(control) === -1) { expectedControls.push(control); } }; this.WriteEUPLBreakdown = function(euplBreakdown, overwrite) { if (euplBreakdown) { try { var breakdown = JSON.parse(euplBreakdown); for (var key in breakdown) { if (!breakdown.hasOwnProperty(key)) { continue; } that.AddEUPLBreakdown(key, breakdown[key], overwrite); } } catch (e) { } } }; this.AddEUPLBreakdown = function(euplName, value, overwrite) { if (Boolean(euplName) && !IsNullOrUndefined(value)) { if (IsNullOrUndefined(euplBreakDown[euplName]) || overwrite) { euplBreakDown[euplName] = value; } } }; this.CheckControlTimeRequiredDataAvailable = function(perfLogger, controlData) { if (IsNullOrUndefined(perfLogger) || IsNullOrUndefined(controlData)) { return false; } var folderNav = perfLogger.GetPerformanceDataPropertyValue('FolderNav'); if (!IsNullOrUndefined(folderNav) && folderNav) { return true; } var pageTransitionType = perfLogger.GetPerformanceDataPropertyValue('PageTransitionType'); if (IsNullOrUndefined(pageTransitionType)) { return false; } if (pageTransitionType === 1) { var downloadStart = perfLogger.GetPerformanceDataPropertyValue('MDSDownloadStart'); if (IsNullOrUndefined(downloadStart)) { return false; } } else { var navigationStart = perfLogger.GetPerformanceDataPropertyValue('W3cNavigationStart'); if (IsNullOrUndefined(navigationStart)) { return false; } } return true; }; this.ComputeControlRenderTime = function(perfLogger, controlData) { if (IsNullOrUndefined(perfLogger) || IsNullOrUndefined(controlData)) { return 0; } var folderNav = perfLogger.GetPerformanceDataPropertyValue('FolderNav'); if (!IsNullOrUndefined(folderNav) && folderNav) { return Number(controlData.EndTime) - Number(controlData.StartTime); } var pageTransitionType = perfLogger.GetPerformanceDataPropertyValue('PageTransitionType'); var w3cNavigationStart = perfLogger.GetPerformanceDataPropertyValue('W3cNavigationStart'); var downloadStart = perfLogger.GetPerformanceDataPropertyValue('MDSDownloadStart'); if (IsNullOrUndefined(controlData.ControlId) || IsNullOrUndefined(controlData.EndTime) || IsNullOrUndefined(pageTransitionType)) { return 0; } if (pageTransitionType === 1) { if (IsNullOrUndefined(downloadStart)) { return 0; } return Number(controlData.EndTime) - Number(downloadStart); } if (pageTransitionType > 1 && pageTransitionType <= 4) { if (Boolean(controlData.StartTime)) { return Number(controlData.EndTime) - Number(controlData.StartTime); } else { if (IsNullOrUndefined(w3cNavigationStart)) { return 0; } return Number(controlData.EndTime) - Number(w3cNavigationStart); } } return 0; }; }; PerformanceLogger.GetLogger = function() { if (!Flighting.VariantConfiguration.IsExpFeatureClientEnabled(517)) { return null; } if (typeof g_RUMOneLogger == "undefined" || IsNullOrUndefined(g_RUMOneLogger)) { if (typeof SP == "object" && typeof SP.CacheLogger == "object" && !IsNullOrUndefined(SP.CacheLogger)) { g_RUMOneLogger = new PerformanceLogger.Logger(SP.CacheLogger); } else { g_RUMOneLogger = new PerformanceLogger.Logger(); } } return g_RUMOneLogger; }; } var SPRUMLogger; function SPRUMLogger_module_def() { if (typeof SP.Performance == "undefined") SP.Performance = {}; if (typeof SP.Performance.Log == "undefined") { SP.Performance.Log = function(logger) { var _rumlogger = new RUMDelta.Logger(logger); var _diTimerId = null; this.UploadNonMDSPageLoadTelemetry = function(pageContext, endTime) { var startTime = GetW3CPageLoadStartTime(); if (Boolean(startTime)) { var eupl = endTime - startTime; var actionContext = GetActionContext(pageContext); _rumlogger.UploadRUMData(actionContext, startTime, 0, 0, 0, eupl); } }; var GetPageContextInfo = function(propName) { if (typeof _spPageContextInfo != "undefined" && Boolean(_spPageContextInfo) && Boolean(_spPageContextInfo[propName])) { var propVal = _spPageContextInfo[propName]; if (Boolean(propVal)) { return propVal; } } return null; }; var GetActionContext = function(pageContext) { var actionContext = (RUMDelta.Application.SharePoint << 16) + pageContext; return actionContext; }; var GetW3CPageLoadStartTime = function() { var SP_PLTStart = 0; if (typeof performance != "undefined" && typeof performance.timing != "undefined") { var _pt = performance.timing; SP_PLTStart = Number(_pt.navigationStart); if (SP_PLTStart == 0) SP_PLTStart = Number(_pt.redirectStart); if (SP_PLTStart == 0) SP_PLTStart = Number(_pt.fetchStart); } return SP_PLTStart; }; this.UploadFileXferTelemetry = function(source, startTime, endTime, byteCount) { var downloadType = -1; if (source.toLowerCase() == "wacdownload") downloadType = 1; else if (source.toLowerCase() == "download") downloadType = 2; if (downloadType != -1) { var action = typeof RUMDelta.Application.SharePointFileXfer != "undefined" ? RUMDelta.Application.SharePointFileXfer : 3; var actionContext = (action << 16) + downloadType; _rumlogger.UploadRUMData(actionContext, startTime, 0, 0, byteCount, endTime - startTime); } }; }; } } var SPLoggers; function SPLoggers_module_def() { if (typeof SP.ReadyToUploadLogs != "undefined") return; SP.ReadyToUploadLogs = function() { }; var spUploader = function(uploadFunc) { var defaultUploader = null; this.CanUpload = function() { return null != defaultUploader; }; this.OnLog = function() { if (null != defaultUploader) defaultUploader.OnLog(); }; this.OnUpload = function() { if (null != defaultUploader) defaultUploader.OnUpload(); }; SP.ReadyToUploadLogs = function() { if (null != defaultUploader) return; defaultUploader = new CacheLogger.DefaultUploader(uploadFunc); setTimeout(uploadFunc, 0); }; }; var useParent = false; try { useParent = window.parent != null && typeof window.parent.SP == "object" && typeof window.parent.SP.CacheLogger == "object" && window.parent.location.protocol == window.location.protocol && window.parent.location.host == window.location.host; } catch (exParentWindow) { } if (useParent) { var parentObj = window.parent; SP.DebugLogger = new DebugLogger.Logger(25, parentObj.SP.CacheLogger); SP.QoS = new QoSLogger.Logger(parentObj.SP.CacheLogger, SP.DebugLogger); } else { SP.CacheLogger = new CacheLogger.Logger("SPCacheLogger", BaseLogger.GetLogger(), spUploader); SP.DebugLogger = new DebugLogger.Logger(25, SP.CacheLogger); SP.QoS = new QoSLogger.Logger(SP.CacheLogger, SP.DebugLogger); } var baseLogger = { WriteLog: function(eventName, dictProperties) { SP.CacheLogger.WriteLog(eventName, dictProperties, true); }, UploadData: function() { } }; var spRUMLogger; SP.Performance.Log.GetLogger = function() { if (spRUMLogger == null) { spRUMLogger = new SP.Performance.Log(baseLogger); } return spRUMLogger; }; } function _WriteDocEngagement(teamSiteTag, oneDriveTag, dictProperties) { var context = window["ctx"]; if (context != null && (Boolean(context.RealSiteTemplateId) ? context.RealSiteTemplateId === 21 : context.SiteTemplateId === 21)) { SP.QoS.WriteUserEngagement(oneDriveTag, dictProperties); } else { SP.QoS.WriteUserEngagement(teamSiteTag, dictProperties); } } function _WriteDocDebugLog(teamSiteTag, oneDriveTag, level, e) { var context = window["ctx"]; if (context != null && (Boolean(context.RealSiteTemplateId) ? context.RealSiteTemplateId === 21 : context.SiteTemplateId === 21)) { SP.DebugLogger.Write(oneDriveTag, level, e); } else { SP.DebugLogger.Write(teamSiteTag, level, e); } } function _WriteDocStartTag(teamSiteTag, oneDriveTag) { _WriteDocEngagement(teamSiteTag, oneDriveTag); } function _WriteDocSuccessTag(teamSiteTag, oneDriveTag) { _WriteDocEngagement(teamSiteTag, oneDriveTag); } function _WriteDocFailureTag(teamSiteTag, oneDriveTag) { _WriteDocEngagement(teamSiteTag, oneDriveTag); } function WriteDebugLogWithEventArgs(tag, args) { SP.DebugLogger.Write(tag, SP.DebugLogger.LoggingLevel.Interesting, getLoggingInfo(args)); } var getLoggingInfo; var addToInfoIfExists; var _WOPIDocLoaded; var SetWOPIDocLoaded; var _TelemetryEndTime; var UploadFileXferTelemetry; var ReadyToUploadLogs; function RumNonMDSHandler() { setTimeout(CollectRUMNonMDS, 0); } var SPThemeUtils; function SPThemeUtils_module_def() { SPThemeUtils.ApplyCurrentTheme = ApplyCurrentTheme; SPThemeUtils.ClearThemeCache = ClearThemeCache; SPThemeUtils.GetCurrentStyleSheetText = GetCurrentStyleSheetText; SPThemeUtils.GetCurrentThemeCacheToken = GetCurrentThemeCacheToken; SPThemeUtils.GetSiteThemedCssFolderUrl = GetSiteThemedCssFolderUrl; SPThemeUtils.GetThemedStyleSheets = GetThemedStyleSheets; SPThemeUtils.GetThemeColor = GetThemeColor; SPThemeUtils.IsSiteThemed = IsSiteThemed; SPThemeUtils.LoadThemableResources = LoadThemableResources; SPThemeUtils.RegisterAllImages = RegisterAllImages; SPThemeUtils.RegisterCssReferences = RegisterCssReferences; SPThemeUtils.ReplaceCssTextForElement = ReplaceCssTextForElement; SPThemeUtils.SetThemeRetriever = SetThemeRetriever; SPThemeUtils.Suspend = SuspendTheming; SPThemeUtils.UseClientSideTheming = UseClientSideTheming; SPThemeUtils.UseShellThemes = UseShellThemes; SPThemeUtils.WhenThemeReady = WhenThemeReady; SPThemeUtils.WithCurrentTheme = WithCurrentTheme; SPThemeUtils.WithSiteTheme = WithSiteTheme; var strUndefined = "undefined"; var _attrCssOriginalHref = "data-original-href"; var _withTheme = WithSiteTheme; function Complain(complaint) { if (typeof console !== strUndefined && typeof console.warn !== strUndefined) console.warn(complaint); } function SuspendTheming() { (GetPageManager()).SuspendTheming(); } function FlightingAvailable() { return typeof Flighting !== strUndefined && typeof Flighting.VariantConfiguration !== strUndefined && typeof Flighting.VariantConfiguration.IsExpFeatureClientEnabled !== strUndefined; } function UseClientSideTheming() { var wtGroup = 64; var wtCommSite = 68; var wtSTS3 = "STS#3"; var wt; var wtConfiguration; var featureEnabled = FlightingAvailable() && (Flighting.VariantConfiguration.IsExpFeatureClientEnabled(104) || Flighting.VariantConfiguration.IsExpFeatureClientEnabled(157) || Flighting.VariantConfiguration.IsExpFeatureClientEnabled(120) && ((wt = GetWebTemplate()) == wtGroup || wt == wtCommSite || (wtConfiguration = GetWebTemplateConfiguration()) == wtSTS3)); var useCST = featureEnabled && typeof Theming !== strUndefined; return useCST; } function UseShellThemes() { return UseClientSideTheming() && Flighting.VariantConfiguration.IsExpFeatureClientEnabled(107); } function GetPageManager() { return Theming.GetPageManager(); } function GetCurrentStyleSheetText(styleSheetUrl) { return (GetPageManager()).GetCurrentStyleSheetText(styleSheetUrl); } function GetThemedStyleSheets() { return (GetPageManager()).GetThemedStyleSheets(); } function GetThemeColor(colorSlot, opacity) { return (GetPageManager()).GetColorFromPalette(colorSlot, opacity); } function WhenImagesThemed(callback) { if (UseClientSideTheming()) (GetPageManager()).WhenImagesThemed(callback); else callback(); } function WhenThemeReady(callback) { if (UseClientSideTheming()) (GetPageManager()).WhenReady(callback); else callback(); } function GetResponseText(xhr) { var strResponseText; try { strResponseText = xhr.responseText; } catch (exResponseText) { } return strResponseText; } function GetErrorPropertiesFromXHR(xhrError) { var errorProps = { PageCorrelation: window["g_correlationId"], PageURL: Nav.ajaxNavigate.get_href(), IsAppWeb: GetPageContextInfoProperty("isAppWeb"), XHR_Correlation: xhrError.getResponseHeader("SPRequestGuid"), XHR_Status: xhrError.status, WebTemplate: GetPageContextInfoProperty("webTemplate") }; return errorProps; } function RequestHeader(header, value) { this.header = header; this.value = value; } function WithLoadedXMLHttpRequest(url, xhrResultCallback, requestHeaders) { var req = new XMLHttpRequest(); req.onreadystatechange = function() { if (req != null && req.readyState != 4) return; xhrResultCallback(req); req = null; }; try { req.open("GET", url, true); if (requestHeaders != null) { for (var i = 0; i < requestHeaders.length; i++) { var rh = requestHeaders[i]; req.setRequestHeader(rh.header, rh.value); } } req.send(""); } catch (exSendRequest) { xhrResultCallback(req); req = null; } } function WithUrlContents(url, resultCallback, xhrErrorCallback, requestHeaders) { WithLoadedXMLHttpRequest(url, CallbackWithUrlContents, requestHeaders); function CallbackWithUrlContents(req) { var responseText = null; if (req.status != 200 && Boolean(xhrErrorCallback)) { xhrErrorCallback(req); } else { if (req.status == 200) { responseText = req.responseText; } resultCallback(responseText); } } } function WithUrlContentsMonitored(url, monitoredResultCallback, xhrMonitoredErrorCallback, requestHeaders, scenarioName, startTag, successTag, failureTag, noResultTag) { if (!scenarioName) scenarioName = "WithUrlContents"; if (!startTag) startTag = scenarioName + "_Start"; if (!successTag) successTag = scenarioName + "_Success"; if (!failureTag) failureTag = scenarioName + "_Failure"; if (!noResultTag) noResultTag = scenarioName + "_NoResult"; var urlRequestMonitor = new SP.QoS.ScenarioMonitor(scenarioName, startTag, successTag, failureTag, noResultTag); WithUrlContents(url, ResultCallbackForMonitoring, ErrorCallbackForMonitoring, _restHeaders); function ResultCallbackForMonitoring(strResult) { monitoredResultCallback(strResult, urlRequestMonitor); if (urlRequestMonitor != null) { urlRequestMonitor.Success(); urlRequestMonitor.Dispose(); } } function ErrorCallbackForMonitoring(xhrError) { if (Boolean(xhrMonitoredErrorCallback)) { xhrMonitoredErrorCallback(xhrError, urlRequestMonitor); } else if (urlRequestMonitor != null) { urlRequestMonitor.UnexpectedFailure(); monitoredResultCallback(null, urlRequestMonitor); urlRequestMonitor.Dispose(); } } } var _restHeaders = [new RequestHeader("Content-Type", "application/x-www-form-urlencoded"), new RequestHeader("ACCEPT", "application/json; odata = verbose")]; function WithRestValue(url, resultCallback, xhrErrorCallback) { WithUrlContents(url, resultCallback, xhrErrorCallback, _restHeaders); } function WithRestValueMonitored(url, monitoredResultCallback, xhrMonitoredErrorCallback, scenarioName, startTag, successTag, failureTag, noResultTag) { WithUrlContentsMonitored(url, monitoredResultCallback, xhrMonitoredErrorCallback, _restHeaders, scenarioName, startTag, successTag, failureTag, noResultTag); } function GetPageContextInfoProperty(propName) { var prop = null; if (typeof _spPageContextInfo != 'undefined') { prop = _spPageContextInfo[propName]; } return prop; } function GetCurrentLcid() { var lcid = Number(GetPageContextInfoProperty("currentLanguage")); if (isNaN(lcid)) lcid = 1033; return lcid; } function GetSiteThemeCacheToken() { return GetPageContextInfoProperty("themeCacheToken"); } function GetSiteThemedCssFolderUrl() { return GetPageContextInfoProperty("themedCssFolderUrl"); } function GetWebServerRelativeUrl() { var webUrl = GetPageContextInfoProperty("webServerRelativeUrl"); if (!Boolean(webUrl)) webUrl = "/"; return webUrl; } function GetWebTemplate() { var webTemplate = -1; var strWebTemplate = GetPageContextInfoProperty("webTemplate"); if (strWebTemplate != null) { webTemplate = parseInt(strWebTemplate); } return webTemplate; } function GetWebTemplateConfiguration() { var webTemplateConfiguration = null; var strWebTemplateConfiguration = GetPageContextInfoProperty("webTemplateConfiguration"); if (strWebTemplateConfiguration != null) { webTemplateConfiguration = strWebTemplateConfiguration; } return webTemplateConfiguration; } function UserCannotFetchTheme() { var SPBasePermissions_Open = 0x10000; var nonMDSPage = false; try { nonMDSPage = !Nav.isMDSUrl(window.location.href); } catch (exIgnore) { } return nonMDSPage && GetPageContextInfoProperty("webPermMasks") != null && !UserHasPermissionLow(SPBasePermissions_Open); } function UserHasPermissionLow(permissionLevel) { var webPermMasks = GetPageContextInfoProperty("webPermMasks"); var webPermMasksLow = webPermMasks != null ? Number(webPermMasks["Low"]) : 0; var hasPerm = (webPermMasksLow & permissionLevel) == permissionLevel; return hasPerm; } function IsSiteThemed() { return GetSiteThemedCssFolderUrl() != null; } function ParseJsonOrUndefined(strJson) { var result; if (strJson != null) { try { result = JSON.parse(strJson); } catch (exParsingJson) { } } return result; } var _key_ThemeCache = "SPThemeCache"; var _key_ThemeCacheToken = "SPThemeCacheToken"; function ClearThemeCache() { BrowserStorage.local.removeItem(_key_ThemeCache); BrowserStorage.local.removeItem(_key_ThemeCacheToken); } function CacheTheme(strThemeData, cacheToken) { try { if (cacheToken != null && JSON.parse(strThemeData) != null) { BrowserStorage.local.setItem(_key_ThemeCache, strThemeData); BrowserStorage.local.setItem(_key_ThemeCacheToken, cacheToken); } } catch (exThemeDataParsing) { } } function GetCachedTheme() { var result = null; var currentCacheToken = GetSiteThemeCacheToken(); var storedCacheToken = BrowserStorage.local.getItem(_key_ThemeCacheToken); if (Boolean(storedCacheToken) && storedCacheToken == currentCacheToken) { result = BrowserStorage.local.getItem(_key_ThemeCache); } return result; } function GetCurrentThemeCacheToken() { return (GetPageManager()).GetCacheToken(); } function ExtractThemeDataFromREST(strData) { var themeJson = null; var objRestData = ParseJsonOrUndefined(strData); if (objRestData != null && objRestData.d != null) themeJson = objRestData.d.GetContextWebThemeData; return themeJson; } function ParseThemeData(strThemeData) { var themeInfo = null; var themeData = ParseJsonOrUndefined(strThemeData); themeInfo = new Theming.ThemeInfo(themeData); return themeInfo; } function SetThemeRetriever(withTheme) { _withTheme = withTheme == null ? WithSiteTheme : withTheme; } function WithCurrentTheme(themeCallback, bForceLoad) { _withTheme(themeCallback, bForceLoad); } var _strThemeOverride = "ThemeOverride"; function WithSiteTheme(themeCallback, bForceLoad) { if (window["Theming"] == null || !bForceLoad && !Theming.Utilities.CanRecolorImages()) { themeCallback(null); return; } var overrideTheme = Nav.getUrlKeyValue(_strThemeOverride); var hasOverride = Boolean(overrideTheme); var cachedTheme = !hasOverride ? GetCachedTheme() : null; if (cachedTheme == null && !UserCannotFetchTheme()) { var CombinePathFragments = Theming.Utilities.CombinePathFragments; var requestedTheme = hasOverride ? "&" + _strThemeOverride + "=" + encodeURIComponent(overrideTheme) : ''; var themeDataUrl = CombinePathFragments(GetWebServerRelativeUrl(), '_api/SP.Web.GetContextWebThemeData?lcid=' + String(GetCurrentLcid()) + requestedTheme); WithRestValueMonitored(themeDataUrl, CallbackWithCurrentTheme, ErrorLoadingCurrentTheme, "ClientSideTheming_FetchTheme", "ClientSideTheming_StartFetchTheme", "ClientSideTheming_SuccessFetchTheme", "ClientSideTheming_FailureFetchTheme"); } else { themeCallback(ParseThemeData(cachedTheme)); } function CallbackWithCurrentTheme(strTheme, monitor) { if (strTheme !== null) { var strData = ExtractThemeDataFromREST(strTheme); if (!Boolean(strData)) { monitor.UnexpectedFailure("ClientSideTheming_FetchTheme_InvalidResponse"); Complain("SPThemeUtils: Could not load theme data."); strData = null; } else { if (!Boolean(Nav.getUrlKeyValue(_strThemeOverride))) { CacheTheme(strData, GetSiteThemeCacheToken()); } } } themeCallback(ParseThemeData(strData)); } function ErrorLoadingCurrentTheme(xhrError, monitor) { var xhrStatusCode = xhrError.status; if (xhrStatusCode == 401 || xhrStatusCode == 403) { monitor.ExpectedFailure("ClientSideTheming_FailureFetchTheme_Unauthorized", GetErrorPropertiesFromXHR(xhrError), GetResponseText(xhrError)); } else { monitor.UnexpectedFailure(null, GetErrorPropertiesFromXHR(xhrError), GetResponseText(xhrError)); } monitor.Dispose(); themeCallback(ParseThemeData(null)); } } function RegisterDefaultSharePointCss() { var linkElements = document.getElementsByTagName("link"); var lElements = linkElements.length; for (var i = 0; i < lElements; i++) { var linkElement = linkElements[i]; var linkHref = linkElement.href; if (linkHref != null && (linkHref.toUpperCase()).indexOf("/DEFAULTCSS.ASHX") >= 0) { var originalHref = linkElement.getAttribute(_attrCssOriginalHref); (GetPageManager()).AddCssLink(linkHref, originalHref, linkElement); break; } } } function RegisterAllImages(bSync) { if (UseClientSideTheming()) { (GetPageManager()).RegisterAllImages(bSync); } } function MakeCSSRelativeUrl(originalUrl) { return Theming.Utilities.MakeFixupCallbackForCssFile(originalUrl); } function RegisterCssReferences(cssRefs) { if (!(window["OffSwitch"] == null || OffSwitch.IsActive("B11B9DA7-DAFA-4237-B593-ECBA1E3B888D")) && cssRefs != null) { var tmpLink = document.createElement("a"); for (var i = 0; i < cssRefs.length; i++) { var cssRef = cssRefs[i]; if (cssRef == null) continue; var url = cssRef.Url; var originalUrl = cssRef.OriginalUrl; var id = cssRef.Id; if (Boolean(url) && Boolean(id)) { tmpLink.href = url; var normalizedUrl = tmpLink.href; var element = document.getElementById(id); if (element != null && element.href != normalizedUrl) { cssRef.Url = element.href; if (originalUrl == url) { cssRef.OriginalUrl = element.href; } } } } } (GetPageManager()).RegisterCssReferences(cssRefs, null); } function RestoreCssLinksToOriginalUrls() { var linkElements = document.getElementsByTagName("link"); var numLinks = linkElements.length; for (var iLinkElement = 0; iLinkElement < numLinks; iLinkElement++) { var linkElement = linkElements[iLinkElement]; var originalHrefValue = linkElement.getAttribute(_attrCssOriginalHref); if (Boolean(originalHrefValue) && linkElement.rel != null && linkElement.rel.toLowerCase() == "stylesheet") { linkElement.href = originalHrefValue; } } } function RemoveElementFromDom(element) { if (element != null && element.parentNode != null) element = element.parentNode.removeChild(element); return element; } function OnWindowUnload(fn) { DOM.AddEventHandler(window, "onunload", fn, false); } function RemoveAllElementsWithId(elementId) { var removalAttempts = 100; while (RemoveElementFromDom(document.getElementById(elementId)) && --removalAttempts >= 0) { } } function TemporaryStyle(elementId, cssText) { var _element = null; RemoveAllElementsWithId(elementId); if (Boolean(cssText)) { _element = document.createElement("style"); _element.type = "text/css"; _element.id = elementId; Theming.ReplaceCssTextForElement(_element, cssText); var head = (document.getElementsByTagName("head"))[0]; _element = head.appendChild(_element); OnWindowUnload(Remove); setTimeout(Remove, 7000); } this.Remove = Remove; function Remove() { RemoveElementFromDom(_element); _element = null; } } function CancelableLogger(strSuccess, strCanceled) { var _startTime = GetCurrentTime(); var _logged = false; this.cancel = function() { LogResult(true); }; this.success = function() { LogResult(false); }; function LogResult(bCanceled) { if (!_logged) { _logged = true; var timeSinceStart = GetCurrentTime() - _startTime; if (!bCanceled) { LogSuccess(strSuccess, timeSinceStart); } else { LogFailure(strCanceled, timeSinceStart); } } } ; } var _cssThemeLogger; var _imagesThemeLogger; var _themingTimeout; function CancelPendingLoggers() { if (_themingTimeout != null) { clearTimeout(_themingTimeout); _themingTimeout = null; } if (_cssThemeLogger != null) { _cssThemeLogger.cancel(); _cssThemeLogger = null; } if (_imagesThemeLogger != null) { _imagesThemeLogger.cancel(); _imagesThemeLogger = null; } } function ApplyCurrentTheme(hideContentWhileTheming) { var idThemingCurtain = "SPThemeHideForms"; if (UseClientSideTheming()) { var styleHideForms = new TemporaryStyle(idThemingCurtain, hideContentWhileTheming ? "form {opacity:0 !important}" : ""); var styleHideImages = new TemporaryStyle("SPThemeHideImages", "img {opacity:0 !important}"); RegisterDefaultSharePointCss(); _withTheme(function ApplyThemeInfo(themeInfo) { if (themeInfo == null) { themeInfo = new Theming.ThemeInfo(null); } if (!Theming.Utilities.CanRecolorImages()) { themeInfo.NoImageRecoloring = true; } CancelPendingLoggers(); SuspendTheming(); WhenThemeReady(styleHideForms.Remove); WhenImagesThemed(styleHideImages.Remove); if (!themeInfo.IsDefault) { LogStart("ClientSideTheming_StartTheme"); _cssThemeLogger = new CancelableLogger("ClientSideTheming_SuccessTheme", "ClientSideTheming_FailureTheme_Cancel"); (GetPageManager()).WhenReady(_cssThemeLogger.success); if (!themeInfo.NoImageRecoloring) { LogStart("ClientSideTheming_StartThemeImages"); _imagesThemeLogger = new CancelableLogger("ClientSideTheming_SuccessThemeImages", "ClientSideTheming_FailureThemeImages_Cancel"); WhenImagesThemed(_imagesThemeLogger.success); } } else { var startTime = GetCurrentTime(); var capturedThemingTimeout = _themingTimeout = setTimeout(function() { LogFailure("ClientSideTheming_FailureApplyDefault", GetCurrentTime() - startTime); }, 1000); WhenThemeReady(function() { clearTimeout(capturedThemingTimeout); }); } (GetPageManager()).SetTheme(themeInfo); }); if (IsSiteThemed()) LoadThemableResources(); } else if (!(window["OffSwitch"] == null || OffSwitch.IsActive("DCF7FB71-8493-4615-8A9A-53F9E7ED0210"))) { RemoveAllElementsWithId(idThemingCurtain); } } function LoadThemableResources() { (GetPageManager()).LoadThemableResources(); } function LogStart(tag) { SP.QoS.WriteStart(tag, null, SP.QoS.LogType.Diagnostic); } function LogSuccess(tag, duration) { SP.QoS.WriteSuccess(tag, null, SP.QoS.LogType.Diagnostic, duration); } function LogFailure(tag, duration) { SP.QoS.WriteFailure(tag, null, SP.QoS.LogType.Diagnostic, duration); } function GetCurrentTime() { return (new Date).getTime(); } function RemoveChildNodes(element) { while (element.lastChild != null) element.removeChild(element.lastChild); } function TryReplaceStyleSheetCssText(element, newCss) { var success = false; if (element != null) { try { if (typeof element.styleSheet != "undefined" && element.styleSheet != null && typeof element.styleSheet.cssText != "undefined") { element.styleSheet.cssText = newCss; success = true; } } catch (exCannotSetCssText) { } } return success; } function ReplaceCssTextForElement(element, newCss) { var success = TryReplaceStyleSheetCssText(element, newCss); if (!success) { RemoveChildNodes(element); element.appendChild(document.createTextNode(newCss)); } } } var SuiteNavRendering; function SuiteNavRendering_module_def() { var _jsProtocol = "javascript:"; var c_defaultSuiteDataVersion = 2; var hasSiteSettingsMenuItem = false; SuiteNavRenderingOptions.prototype = { brandingLogo: "", brandingLogoLink: "", brandingLogoTitle: "", brandingText: "", culture: "", dataEndpoint: "", signInLink: "", top: "", version: c_defaultSuiteDataVersion }; function SuiteNavRenderingOptions() { } SuiteNavRendering.SuiteNavRenderingOptions = SuiteNavRenderingOptions; SuiteNavRendering.RenderSuiteNav = function RenderSuiteNav(renderingOptions) { var suiteLinksDiv = renderingOptions.top; var shellDataRestMethod = renderingOptions.dataEndpoint; var cultureName = renderingOptions.culture; var signInLink = renderingOptions.signInLink; var suiteDataVersion = renderingOptions.version; if (!(suiteDataVersion > 0)) suiteDataVersion = c_defaultSuiteDataVersion; if (!!shellDataRestMethod && !!cultureName) { shellDataRestMethod += (shellDataRestMethod.indexOf("?") < 0 ? "?" : "&") + "v=" + String(suiteDataVersion) + "&Locale=" + cultureName; } var additionalCssText = ""; var suiteDataObject = null; var suiteNavThemingModuleDefined = window["SuiteNavTheming"] != null; var suiteIsThemed = SPThemeUtils.IsSiteThemed() || suiteNavThemingModuleDefined && SuiteNavTheming.GetSuiteNavThemeColorsOverride() != null; if (suiteNavThemingModuleDefined) { SuiteNavTheming.WithSuiteThemingCss(function(suiteThemingCss) { additionalCssText = suiteThemingCss; if (suiteDataObject != null) RenderSuiteNavWithData(suiteDataObject); }); } WithSuiteNavData(function HandleSuiteNavData(suiteData) { suiteDataObject = suiteData; if (!suiteIsThemed || Boolean(additionalCssText)) { RenderSuiteNavWithData(suiteData); } }, shellDataRestMethod, suiteDataVersion); function RenderSuiteNavWithData(suiteData) { var o365Shell = window["O365Shell"]; if (o365Shell == null) { return; } var linksData = SuiteNavCommon.ExtractSuiteNavBarData(suiteData); AddMenuItemsFromDOM(linksData); UpdateActiveLink(linksData); UpdateHelpLink(linksData); UpdateStringsAndBranding(linksData, renderingOptions); var helpLink = linksData.HelpLink; if (helpLink != null && !Boolean(linksData.HelpLink.Text)) linksData.HelpLink.Text = GetStsString("L_SuiteNav_Help_Link_Text"); if (Boolean(linksData.UserDisplayName)) linksData.IsAuthenticated = true; var objSignInLink = null; if (!linksData.IsAuthenticated && Boolean(signInLink)) { objSignInLink = { "Text": GetStsString("L_SuiteNav_SignIn"), "Url": signInLink }; } linksData.ClientData = JSON.stringify({ "IsRTL": document.documentElement.getAttribute('dir') == "rtl", "IsFallbackShell": true, "ShowAppLauncherV3": true, "SignInLink": objSignInLink }); RemoveEmtpyArraysFromSuiteNavData(linksData); o365Shell.SetData(linksData); var renderSettings = { "top": suiteLinksDiv, "layout": "Mouse" }; o365Shell.RenderSync(renderSettings, OnSuiteRendered, OnSuiteLoaded); } function OnSuiteLoaded() { } function OnSuiteRendered() { try { ThemeSuiteNav(); } catch (exThemeSuiteNav) { } } function UpdateStringsAndBranding(linksData, opts) { var brandingLogo = opts.brandingLogo; var brandingLogoLink = opts.brandingLogoLink; var brandingLogoTitle = opts.brandingLogoTitle; linksData.StringsOverride = MakeStringsOverride(opts.brandingText); if (brandingLogo) { if (!brandingLogoTitle) { brandingLogoTitle = ""; } linksData.HasTenantBranding = true; linksData.TenantLogoUrl = { Title: brandingLogoTitle, Url: brandingLogo }; if (brandingLogoLink) linksData.LogoNavigationUrl = brandingLogoLink; } } function ThemeSuiteNav() { var suiteNavRenderingDiv = document.getElementById(suiteLinksDiv); CSSUtil.RemoveClass(suiteNavRenderingDiv, "ms-TopBarBackground-bgColor"); if (Boolean(additionalCssText) && suiteNavRenderingDiv != null) { var firstChildOfSuiteLinksDiv = suiteNavRenderingDiv.firstChild; var styleElement = document.createElement("style"); styleElement.id = "SuiteNavThemeStyle"; styleElement.type = "text/css"; SPThemeUtils.ReplaceCssTextForElement(styleElement, additionalCssText); if (firstChildOfSuiteLinksDiv != null) { suiteNavRenderingDiv.insertBefore(styleElement, firstChildOfSuiteLinksDiv); } else { suiteNavRenderingDiv.appendChild(styleElement); } } } }; LinkData.prototype.TargetWindow = ""; LinkData.prototype.Text = ""; LinkData.prototype.Url = ""; function LinkData() { } function GetStsString(locKey) { var stsStrings = typeof Strings != "undefined" && Strings.STS != null ? Strings.STS : {}; return stsStrings[locKey]; } var c_stringsOverride = MakeStringsOverride(); function MakeStringsOverride(productName) { if (!productName) productName = GetStsString("L_SuiteNav_ProductName"); return { "l_ShellCore_App_Provision_Alt_Text": GetStsString("L_SuiteNav_App_Provision_Alt_Text"), "l_ShellCore_App_Provision_Text": GetStsString("L_SuiteNav_App_Provision_Text"), "l_ShellCore_ContextualTitleFormat_Text": GetStsString("L_SuiteNav_ContextualTitleFormat_Text"), "l_ShellCore_Help_Title_Text": GetStsString("L_SuiteNav_Help_Title_Text"), "l_ShellCore_MeTile_Title_Text": GetStsString("L_OpenMenu_Text"), "l_ShellCore_NavMenu_MyApps_Text": GetStsString("L_SuiteNav_NavMenu_MyApps_Text"), "l_ShellCore_NavMenu_Title_Text": GetStsString("L_SuiteNav_NavMenu_Title_Text"), "l_ShellCore_O365_Text": productName, "l_ShellCore_O365_Title_Text": "", "l_ShellCore_Settings_Title_Text": GetStsString("L_SuiteNav_Settings_Title_Text") }; } SuiteNavData.prototype.AboutMeLink = null; SuiteNavData.prototype.ClientData = ""; SuiteNavData.prototype.CurrentMainLinkElementID = ""; SuiteNavData.prototype.CurrentWorkloadHelpSubLinks = []; SuiteNavData.prototype.CurrentWorkloadSettingsSubLinks = []; SuiteNavData.prototype.CurrentWorkloadUserSubLinks = []; SuiteNavData.prototype.HelpLink = null; SuiteNavData.prototype.IsAuthenticated = false; SuiteNavData.prototype.PinnedApps = null; SuiteNavData.prototype.SignOutLink = null; SuiteNavData.prototype.StringsOverride = c_stringsOverride; SuiteNavData.prototype.UserDisplayName = null; SuiteNavData.prototype.WorkloadLinks = null; function SuiteNavData() { var _this = this; _this.CurrentWorkloadHelpSubLinks = []; _this.CurrentWorkloadSettingsSubLinks = []; _this.CurrentWorkloadUserSubLinks = []; _this.HelpLink = new LinkData; _this.SignOutLink = new LinkData; } SuiteData.prototype.DoNotCache = false; SuiteData.prototype.NavBarData = null; SuiteData.prototype.SPSuiteVersion = c_defaultSuiteDataVersion; function SuiteData() { this.NavBarData = new SuiteNavData; } SuiteNavRendering.SuiteNavData = SuiteNavData; function IsNullOrEmptyArray(arrValue) { return arrValue == null || !(arrValue.length > 0); } function RemoveEmtpyArraysFromSuiteNavData(linksData) { var propsToCheck = ["CurrentWorkloadHelpSubLinks", "CurrentWorkloadSettingsSubLinks", "CurrentWorkloadUserSubLinks", "PinnedApps", "WorkloadLinks"]; var lPropsToCheck = propsToCheck.length; for (var iProp = 0; iProp < lPropsToCheck; iProp++) { var propNameToCheck = propsToCheck[iProp]; if (IsNullOrEmptyArray(linksData[propNameToCheck])) linksData[propNameToCheck] = null; } } function GenerateDefaultSuiteNavData() { var defaultSuiteData = new SuiteData; defaultSuiteData.DoNotCache = true; return defaultSuiteData; } function MakeSuiteNavDataLoader(shellDataRestMethod, onDataLoadError) { function SuiteNavDataLoader(resultCallback) { if (Boolean(shellDataRestMethod)) { var shellDataRestUrl = "/_api/" + shellDataRestMethod; if (typeof _spPageContextInfo != "undefined") { var webServerRelativeUrl = _spPageContextInfo.webServerRelativeUrl; if (Boolean(webServerRelativeUrl)) shellDataRestUrl = Nav.combineUrl(webServerRelativeUrl, shellDataRestUrl); } RequestUtil.WithRestValue(function(strShellData) { var strSuiteData; try { var parsedResponse = JSON.parse(strShellData); strSuiteData = parsedResponse.d.GetSuiteNavData; } catch (exParseShellData) { if (onDataLoadError != null) { onDataLoadError("ParseResponse"); } } if (!strSuiteData) { var defaultSuiteData = GenerateDefaultSuiteNavData(); strSuiteData = JSON.stringify(defaultSuiteData); } resultCallback(strSuiteData); }, shellDataRestUrl); } else { resultCallback(JSON.stringify(GenerateDefaultSuiteNavData())); } } return SuiteNavDataLoader; } function WithSuiteNavData(shellDataCallback, shellDataRestMethod, suiteVersion) { var monitorName = "SuiteNavRendering_LoadData"; var suiteNavDataMonitor = new SP.QoS.ScenarioMonitor(monitorName, monitorName + "_Start", monitorName + "_Success", monitorName + "_Failure", monitorName + "_NoResult"); var loadSuiteNavData = MakeSuiteNavDataLoader(shellDataRestMethod, function(errorType) { suiteNavDataMonitor.UnexpectedFailure(monitorName + "_Fail" + errorType); }); SuiteNavCommon.GetSuiteLinks(loadSuiteNavData, function(strSuiteNavData) { var suiteNavData = null; try { suiteNavData = JSON.parse(strSuiteNavData); if (suiteNavData == null) { suiteNavData = GenerateDefaultSuiteNavData(); } suiteNavDataMonitor.Success(); } catch (exParseNavData) { suiteNavDataMonitor.UnexpectedFailure(monitorName + "_FailParseData"); } suiteNavDataMonitor.Dispose(); shellDataCallback(suiteNavData); }, suiteVersion); } function ExtractItemsFromMenu(menuElement, itemsContainer, linksData) { function UrlFromOnclick(clickHandler) { if (clickHandler == null) { return clickHandler; } else { clickHandler = (clickHandler.replace(/^javascript:/i, "")).replace(/return (true|false);?$/i, ""); return _jsProtocol + "SuiteOnClick(" + Encoding.ScriptEncodeWithQuote(clickHandler) + ")"; } } function MenuItemToLinkData(domMenuItem) { return { "Id": "SuiteMenu_" + domMenuItem.id, "MenuName": null, "Sublinks": null, "TargetWindow": null, "Text": domMenuItem.getAttribute("text"), "Url": UrlFromOnclick(domMenuItem.getAttribute("onmenuclick")) }; } if (menuElement != null) { var menuItems = menuElement.getElementsByTagName("ie:menuitem"); if (menuItems == null || menuItems.length == 0) menuItems = menuElement.getElementsByTagName("menuitem"); var lMenuItems = menuItems.length; var previousGroupId; for (var iMenuItem = 0; iMenuItem < lMenuItems; iMenuItem++) { var menuItem = menuItems[iMenuItem]; var hiddenScript = menuItem.getAttribute("hidden"); var itemHidden = hiddenScript != null && Boolean(eval(hiddenScript)); var itemType = menuItem.getAttribute("type"); if (menuItem.id.indexOf("ID_PersonalInformation") > 0) { hasSiteSettingsMenuItem = true; itemHidden = itemHidden || linksData.AboutMeLink != null; } else if (menuItem.id.indexOf("ID_AboutMe") >= 0) { if (linksData.AboutMeLink == null) { linksData.AboutMeLink = MenuItemToLinkData(menuItem); } continue; } if (!itemHidden && itemType == "option") { var groupId = menuItem.getAttribute("menugroupid"); if (previousGroupId !== groupId) { if (previousGroupId != null) { itemsContainer.push(null); } previousGroupId = groupId; } itemsContainer.push(MenuItemToLinkData(menuItem)); } } } } SuiteNavRendering.AddMenuItemsFromDOM = AddMenuItemsFromDOM; function AddMenuItemsFromDOM(linksData) { if (linksData.UserDisplayName == null) { var userNameDiv = document.getElementById("SuiteNavUserName"); if (userNameDiv != null && Boolean(userNameDiv.textContent)) { linksData.UserDisplayName = userNameDiv.textContent; } } var scriptEncodedSlashUppercase = "\\U002F"; var menuItems = { welcomeItems: [], settingsItems: [] }; var menuData = document.getElementById("suiteMenuData"); if (menuData == null) { return; } var menus = menuData.getElementsByTagName("menu"); var itemsContainer = menuItems.welcomeItems; var lMenus = menus.length; hasSiteSettingsMenuItem = false; for (var iMenu = 0; iMenu < lMenus; iMenu++) { var menu = menus[iMenu]; if (menu.id.indexOf("PersonalActionMenu") >= 0) { if (linksData.CurrentWorkloadUserSubLinks == null) { linksData.CurrentWorkloadUserSubLinks = []; } var currentWorkloadUserSubLinks = linksData.CurrentWorkloadUserSubLinks; var userMenuLinks = []; ExtractItemsFromMenu(menu, userMenuLinks, linksData); var lUserLinks = userMenuLinks.length; for (var iUserLink = 0; iUserLink < lUserLinks; iUserLink++) { var linkData = userMenuLinks[iUserLink]; var uppercaseUrl = ""; if (linkData != null && Boolean(linkData)) { uppercaseUrl = linkData.Url.toUpperCase(); } if (uppercaseUrl.indexOf(scriptEncodedSlashUppercase + "SIGNOUT.ASPX") >= 0) { if (linksData.SignOutLink != null) { linksData.SignOutLink.Url = linkData.Url; if (!Boolean(linksData.SignOutLink.Text)) linksData.SignOutLink.Text = linkData.Text; } } else if (uppercaseUrl.indexOf(scriptEncodedSlashUppercase + "PERSON.ASPX") >= 0) { if (linksData.AboutMeLink == null) linksData.AboutMeLink = linkData; } else { currentWorkloadUserSubLinks.push(linkData); } } } else if (menu.id.indexOf("SiteActionsMenu") >= 0) { if (linksData.CurrentWorkloadSettingsSubLinks == null) { linksData.CurrentWorkloadSettingsSubLinks = []; } ExtractItemsFromMenu(menu, linksData.CurrentWorkloadSettingsSubLinks, linksData); } } if (Boolean(linksData.AboutMeLink) && Boolean(window["_spPageContextInfo"]) && !Boolean(_spPageContextInfo["ProfileUrl"])) { _spPageContextInfo["ProfileUrl"] = linksData.AboutMeLink.Url; } if (!hasSiteSettingsMenuItem) linksData.AboutMeLink = null; } SuiteNavRendering.UpdateHelpLink = UpdateHelpLink; function UpdateHelpLink(linksData) { var helpKey = typeof g_navBarHelpDefaultKey == "undefined" ? "HelpHome" : g_navBarHelpDefaultKey; if (linksData.HelpLink != null) { linksData.HelpLink.Url = _jsProtocol + "TopHelpButtonClick(" + Encoding.ScriptEncodeWithQuote(helpKey) + ")"; linksData.HelpLink.TargetWindow = ""; } } SuiteNavRendering.GetWebTemplate = GetWebTemplate; function GetWebTemplate() { var webTemplate = -1; if (typeof _spPageContextInfo != "undefined") { webTemplate = parseInt(_spPageContextInfo.webTemplate); } return webTemplate; } SuiteNavRendering.UpdateActiveLink = UpdateActiveLink; function UpdateActiveLink(navData) { var _allDocumentsLinkId = "ShellDocuments"; var _allSitesLinkId = "ShellSites"; var _defaultLinkId = "ShellSharepoint"; var _mySiteHostWebTemplate = 54; var _mySitePersonalWebTemplate = 21; var _groupsWebTemplate = 64; var _adminLinkId = "ShellAdmin"; var _newsfeedLinkId = "ShellNewsfeed"; var _newsfeedLinkIdRegex = /^(?:Shell)?Newsfeed$/i; var _projectLinkId = "ShellProject"; var _videoLinkId = "ShellVideo"; var _adminSiteWebTemplate = 16; var _projectWebAppTemplate = 6221; var _mySiteDocumentLibraryListTemplateID = 700; var _hubWebTemplate = 65; if (navData == null) { return; } var _newsfeedOrSitesLinkId = (function() { var iLinks, wLinks = navData.WorkloadLinks || []; for (iLinks = 0; iLinks < wLinks.length; iLinks++) if (wLinks[iLinks].Id === _newsfeedLinkId) return _newsfeedLinkId; var aLinks = navData.PinnedApps || []; for (iLinks = 0; iLinks < aLinks.length; iLinks++) if (_newsfeedLinkIdRegex.test(aLinks[iLinks].Id)) return _newsfeedLinkId; return _allSitesLinkId; })(); var webTemplate = GetWebTemplate(); var uri; var urlPath; switch (webTemplate) { case _adminSiteWebTemplate: navData.CurrentMainLinkElementID = _adminLinkId; break; case _mySiteHostWebTemplate: navData.CurrentMainLinkElementID = _newsfeedOrSitesLinkId; uri = new URI(Nav.ajaxNavigate.get_href()); urlPath = uri.getPath(true); if (Boolean(urlPath)) { if ((urlPath.toLowerCase()).endsWith("/mybraryfirstrun.aspx")) { navData.CurrentMainLinkElementID = _allDocumentsLinkId; } } break; case _projectWebAppTemplate: navData.CurrentMainLinkElementID = _projectLinkId; break; case _hubWebTemplate: if (document.getElementById('O365VideoPage') != null) { navData.CurrentMainLinkElementID = _videoLinkId; } else { navData.CurrentMainLinkElementID = _allSitesLinkId; } break; case _mySitePersonalWebTemplate: if (typeof g_wsaListTemplateId != "undefined" && g_wsaListTemplateId == _mySiteDocumentLibraryListTemplateID) { navData.CurrentMainLinkElementID = _allDocumentsLinkId; } else { navData.CurrentMainLinkElementID = _newsfeedOrSitesLinkId; uri = new URI(Nav.ajaxNavigate.get_href()); urlPath = uri.getPath(true); if (Boolean(urlPath)) { urlPath = urlPath.toLowerCase(); if (urlPath.endsWith("/social/followedcontent.aspx")) { navData.CurrentMainLinkElementID = _allDocumentsLinkId; } else if (urlPath.endsWith("/social/sites.aspx")) { navData.CurrentMainLinkElementID = _allSitesLinkId; } else if (urlPath.endsWith("/social/sitesdocuments.aspx")) { navData.CurrentMainLinkElementID = _allDocumentsLinkId; } else if (urlPath.endsWith("/mybraryfirstrun.aspx")) { navData.CurrentMainLinkElementID = _allDocumentsLinkId; } else if (urlPath.endsWith("/groupdocuments.aspx")) { navData.CurrentMainLinkElementID = _allDocumentsLinkId; } } } break; case _groupsWebTemplate: uri = new URI(Nav.ajaxNavigate.get_href()); urlPath = uri.getPath(true); if (Boolean(urlPath) && (urlPath.toLowerCase()).endsWith("/groupsdocuments.aspx")) { navData.CurrentMainLinkElementID = _allDocumentsLinkId; } else { navData.CurrentMainLinkElementID = _defaultLinkId; } break; default: navData.CurrentMainLinkElementID = _allSitesLinkId; break; } } } var ModuleLink; function ModuleLink_module_def() { var manifestRequestMap = {}; var configuredRequireJS = false; ModuleLink.loadManifest = function(manifestName, scenarioName, callback) { if (typeof scenarioName === "function") { callback = scenarioName; scenarioName = void 0; } else if (typeof callback !== "function") { callback = function() { }; } ensureRequireJS(function() { }); if (!Boolean(manifestRequestMap[manifestName])) { manifestRequestMap[manifestName] = new ManifestInfoRequest(manifestName); } var request = manifestRequestMap[manifestName]; request.getManifestInfo(function(manifestInfo) { ensureRequireJS(function() { if (!configuredRequireJS) { var configFunc = new Function(manifestInfo.d.RequireJsScriptBlock); configFunc.call(this); configuredRequireJS = true; } if (Boolean(scenarioName)) { var scenarios = manifestInfo.d.ScenarioMapping.results; for (var i = 0; i < scenarios.length; i++) { if (scenarios[i].Key === scenarioName) { var moduleList = scenarios[i].Value.split(','); require(moduleList); } } } callback.call(this, manifestInfo); }); }); }; function ensureRequireJS(callback) { if (Boolean(window["requirejs"])) { callback(); } else { if (typeof EnsureScriptFunc !== "undefined") { EnsureScriptFunc("require.js", "requirejs", function() { callback(); }); } } } var ManifestInfoRequest = function(manifestName) { var manifestInfo; var xhr; var pendingCallbacks = []; this.getManifestInfo = function(callback) { if (isReady()) { callback(manifestInfo); } else { pendingCallbacks.push(callback); if (!isLoading()) { startRequest(); } } }; function startRequest() { var url = "/_api/web/GetResourceManifestInformation(manifestName='"; url += encodeURIComponent(manifestName); url += "')"; xhr = new XMLHttpRequest(); xhr.open("GET", url, true); xhr.setRequestHeader("Content-Type", "application/json;odata=verbose"); xhr.setRequestHeader("Accept", "application/json;odata=verbose"); xhr.onload = function requestListener() { manifestInfo = JSON.parse(xhr.responseText); pendingCallbacks.forEach(function(callback) { callback(manifestInfo); }); pendingCallbacks = []; xhr = void 0; }; xhr.send(); } function isReady() { return Boolean(manifestInfo); } function isLoading() { return Boolean(xhr); } }; } function AllowCSSFiltersOnIE8() { var elem = document.getElementById("ms-hcTest"); var isHC = false; if (Boolean(elem) && Boolean(elem.currentStyle) && elem.currentStyle["borderColor"] != "#f00") { isHC = true; CSSUtil.AddClass(document.body, "ms-core-isHC"); } if (browseris.ie8down) { CSSUtil.AddClass(document.body, "ms-core-needIEFilter"); if (isHC) { var s4ws = document.getElementById("s4-workspace"); if (Boolean(s4ws)) s4ws.style.filter = ""; } } else { CSSUtil.AddClass(document.body, "ms-backgroundImage"); } } function notifyScriptsLoadedAndExecuteWaitingJobs(scriptName) { if (typeof Sys != "undefined" && Boolean(Sys) && Boolean(Sys.Application)) { Sys.Application.notifyScriptLoaded(); } NotifyScriptLoadedAndExecuteWaitingJobs(scriptName); } var initJsLoaded; $_global_init();